JSONArray空内容Java&;安卓

JSONArray空内容Java&;安卓,java,android,arrays,json,object,Java,Android,Arrays,Json,Object,有可能在ArrayList中不可能放置大内容,如果您这样做,它会给您空值 我正在插入一个包含32个JSONObject的JSONArray,每个JSONObject都有名称和电话联系人 ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>(); nvp.add(new BasicNameValuePair("something", content)); public void phoneandname(

有可能在ArrayList中不可能放置大内容,如果您这样做,它会给您空值

我正在插入一个包含32个JSONObject的JSONArray,每个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();
    }
}
ArrayList nvp=new ArrayList();
添加(新的BasicNameValuePair(“某物”,内容));
公共void phoneandname(上下文c){
如果(cc.isOnline(c)==true){
db=新数据库(c);
Cursor=c.getContentResolver().query(
ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,
空,空,空);
JSONArray jarray=新的JSONArray();
db.open();
while(phones.moveToNext()){
字符串名称=电话
.getString(电话)
.getColumnIndex(ContactsContract.CommonDataTypes.Phone.DISPLAY_NAME));
字符串phoneNumber=电话
.getString(电话)
.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
db.联系人表(姓名、电话号码);
JSONObject json=新的JSONObject();
试一试{
json.put(“name”,name);
json.put(“phone”,phoneNumber);
jarray.put(json);
}捕获(JSONException e){
e、 printStackTrace();
}
}
上传(jarray,上下文);
db.close();
Log.i(“*******”,jarray.toString());它显示我的数组,然后在通过POST将其上载到服务器之前,它是空的。。。
电话。关闭();
}
}
公共void上载(对象jobject,上下文c){
ArrayList nvp=新的ArrayList();
DBupload upload=新建DBupload();
DatosRegistro dr=新的DatosRegistro(c);
添加(新的BasicNameValuePair(“content”,jobject.toString());
nvp.add(新的BasicNameValuePair(“令牌”),dr.hash_final(
dr.token_secret(dr.mail(),“mail”),jobject.toString());
nvp.add(新的BasicNameValuePair(“id”),String.valueOf(dr
.return_id_phone());
JSONObject json2=upload.UploaData(nvp,
"http://anonyme.mariomontes.es/contacts/insert");
试一试{
if(json2.getInt(“错误”)==1){
}否则{
db.联系人表(姓名、电话号码);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
谢谢

ArrayList nvp=new ArraList();
ArrayList<NameValuePair> nvp = new ArraList<BasicNameValuePair>(); 
BasicNameValuePair tmp = new BasicNameValuePair("something", content);
nvp.add(tmp); 
BasicNameValuePair tmp=新的BasicNameValuePair(“某物”,内容); nvp.add(tmp);

您有一个
NameValuePair
ArrayList
。因此,您需要在
ArrayList
中放置一个
NameValuePair
对象,据我所知,唯一的限制是内存

我有一些巨大的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(新的BasicNameValuePair(“content”,jobject.toString())

但是您正在将JSONArray作为对象传递。。。你需要把它扔回JSONArray

nvp.add(新的BasicNameValuePair(“内容”),((JSONArray)jobject.toString())


更好的做法是将字符串传递给上载函数,而不是作为对象

当我将其上载到服务器时,内容请求为空。。。可能是尺寸问题吧?:)您是否可以编辑实际问题?代码看起来很好:)仍然不工作。。。服务器说请求内容为content=null:(那么您现在是通过字符串传递吗?如果是,请设置一个断点,并在发送之前验证您的字符串是否包含您认为它包含的内容….然后在消息到达服务器时使用fiddler2检查消息是的,如果您查看代码,就在上载之后我正在执行Log.I();与内容,它完美地显示了我想要的。尝试在上载功能中执行此操作以检查是否正常。您是否下载了fiddler2并查看它在消息中的内容?