2017-08-12 61 views
1

我想创建JSON格式,我对这个如何创建JSON格式的Java

我在JsonObject

{ 
    "users": [7, 16, 35], 
    "group_id": "sdkfjsdkljflds" 
} 

不知道创造JsonarrayJsonObject一些问题,我尝试

JSONObject jsonParams = new JSONObject(); 

try { 
    jsonParams.put("group_id", "dlfsdds"); 
    jsonParams.put("users", list); 

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

和我的日志显示

{ 
    "users":"[7, 16, 35]", 
    "group_id":"dlfsdds" 
} 

ps。清单是从

for (int k=0;k<allMember.size();k++){ 
    list.add(allMember.get(k)); 
} 

我的错误是什么?以及如何解决它?

感谢您的帮助:d

+0

您可能需要从'list'创建一个'JSONArray',然后添加它。否则当列表被添加到'JSONObject'时,列表将被转换为一个字符串。 – javanut13

回答

2

您需要将列表转换为JSONArray第一:

try { 
    jsonParams.put("group_id", "dlfsdds"); 

    JSONArray listJson = new JSONArray(); 

    for(int i=0; i<list.size(); i++) { 
     listJson.put(list.get(i)); 
    } 


    jsonParams.put("users", listJson); 

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

大多数图书馆也让你避免for循环和简单地做:

JSONArray listJson = new JSONArray(list); 
+0

谢谢!它的工作 –

+0

嗯,很抱歉,但它不正确,我想设置''用户':[7,16,35]'不''用户“:[”7“,”16“,”35“]' –

+1

@ ARR.s这意味着'list'是一个'List '。将其更改为'列表'。 – BackSlash