2017-08-12 60 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