JSONArray нулевой контент Java и Android

1

Возможно, что в ArrayList невозможно разместить большой контент, а затем, если вы это сделаете, вы получите нуль?

Я вставляю JSONArray с 32 JSONObject, каждый JSONObject имеет имя и телефон.

ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair("something", content));


public void phoneandname(Context c) {

    if (cc.isOnline(c) == true) {
        db = new Database(c);

        Cursor phones = c.getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                null, null, null);

        JSONArray jarray = new JSONArray();
        db.open();

        while (phones.moveToNext()) {
            String name = phones
                    .getString(phones
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String phoneNumber = phones
                    .getString(phones
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            db.contact_table(name, phoneNumber);

            JSONObject json = new JSONObject();

            try {

                json.put("name", name);
                json.put("phone", phoneNumber);
                jarray.put(json);

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

        upload(jarray, context);

        db.close();

        Log.i("********", jarray.toString()); IT SHOWS MY ARRAY AND THEN BEFORE UPLOAD IT TO THE SERVER BY POST IT'S NULL...
        phones.close();
    }

}

public void upload(Object jobject, Context c) {

    ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
    DBupload upload = new DBupload();
    DatosRegistro dr = new DatosRegistro(c);

    nvp.add(new BasicNameValuePair("content", jobject.toString()));
    nvp.add(new BasicNameValuePair("token", dr.hash_final(
            dr.token_secret(dr.mail(), "mail"), jobject.toString())));
    nvp.add(new BasicNameValuePair("id", String.valueOf(dr
            .return_id_phone())));

    JSONObject json2 = upload.UploaData(nvp,
            "http://anonyme.mariomontes.es/contacts/insert");

    try {
        if (json2.getInt("error") == 1) {

        } else {
            db.contact_table(name, phoneNumber);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

Благодарю!

  • 0
    Не могли бы вы также отредактировать фактическую проблему? Код выглядит отлично :)
Теги:
object
arrays

2 ответа

0
ArrayList<NameValuePair> nvp = new ArraList<BasicNameValuePair>(); 
BasicNameValuePair tmp = new BasicNameValuePair("something", content);
nvp.add(tmp); 

у вас есть ArrayList NameValuePair. NameValuePair, вам нужно поместить объект NameValuePair, внутри ArrayList

  • 0
    Извините, вы не могли бы посмотреть мой код, это моя вина :)
  • 0
    Выглядит хорошо. в чем твоя проблема?
Показать ещё 3 комментария
0

Насколько я знаю, единственным ограничением будет память.

У меня есть огромные экземпляры JSONArray с гораздо более крупным объектом внутри.

Я не уверен, к чему относится ваш пример кода.

Обычно я бы делал что-то вроде этого:

JSONArray ja = new JSONArray();

//multiples of these
JSONObject jo = new JSONObject();
jo.put("name","Marc");
jo.put("phone","1234567890");

ja.put(jo);

ОБНОВИТЬ

Хорошо, я понимаю, что вы сейчас имеете в виду... совершенно другой вопрос.

Поэтому проблема скорее в том, что вы называете это:

nvp.add(new BasicNameValuePair("content", jobject.toString()));

но вы передаете JSONArray как объект... вам нужно отбросить его обратно в JSONArray

nvp.add(new BasicNameValuePair("content",((JSONArray)jobject).toString()));

еще лучше было бы передать строку в вашу функцию загрузки, а не как объект

  • 0
    Извините, вы не могли бы посмотреть мой код, это моя вина :)
  • 0
    Все еще не работает ... Сервер говорит, что петиция была довольна = ноль :(
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню