2013-08-01 54 views
0

我需要發送一個數組GSON。 以下是如何在REST中請求外觀。在GSON中發送陣列

{ 
"session_id":"9658179abdcc29eb12cdb1a35f91a11a", 
"list":[ 
    "112", 
    "112" 
] 
} 

這裏是我的代碼:

JSONObject requestObject = new JSONObject(); 
requestObject.put("session_id", session_id); 
requestObject.put("list", list); 
return requestObject.toString(); 

其中列表是ArrayList的。

我得到一個錯誤:

Expected BEGIN_OBJECT but was STRING at line 8 column 1 

我在做什麼錯? 對不起,我是GSON的新手。

+0

您是否先看過GSON文檔? https://sites.google.com/site/gson/gson-user-guide#TOC-Array-例子 –

+0

你想解析JSon字符串還是需要生成JSon字符串? – Fedy2

+0

我需要出示。 – NeuroHobbit

回答

0

嘗試:

return new Gson().toJson(requestObject); 

代替:

return requestObject.toString(); 
+0

是的,我在做。 (字符串jsonString)拋出IOException {}} setUserList(new Gson()。fromJson(jsonString,UserList.class)); return getUserList()。getError()。getCode(); } – NeuroHobbit

0

我不明白你的問題。請更具體和克拉。我假設你想使用GSON生成一個JSONArray,如:

{ 
"session_id":"9658179abdcc29eb12cdb1a35f91a11a", 
"list":[ 
    "112", 
    "112" 
] 
} 

會是這樣的:

 final JsonObject jsonObject = new JsonObject(); 
     jsonObject.addProperty("session_id", "9658179abdcc29eb12cdb1a35f91a11a"); 
     final JsonArray jsonArray = new JsonArray(); 
     jsonArray.add(new JsonPrimitive("112")); 
     jsonArray.add(new JsonPrimitive("112")); 
     jsonObject_MatchEventDiscussion.add("list", jsonArray); 

注:

  • 意識到你現在可以做jsonObject.toString ()這是一個方便的方法 將JsonArray添加到您的POST請求作爲一個字符串。
  • JSONArray!= JsonArray