在GSON中发送数组

时间:2013-08-01 15:20:51

标签: java gson

我需要发送一个数组GSON。 以下是在REST中请求外观的方法。

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

这是我的代码:

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

其中list是ArrayList。

我收到错误:

 Expected BEGIN_OBJECT but was STRING at line 8 column 1

我做错了什么? 对不起,我是GSON的新手。

2 个答案:

答案 0 :(得分:0)

尝试:

return new Gson().toJson(requestObject);

而不是:

return requestObject.toString();

答案 1 :(得分: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