Android JSONObject:将Array添加到put方法

时间:2013-09-01 21:45:08

标签: java android jsonobject

// JSON object to hold the information, which is sent to the server
JSONObject jsonObjSend = new JSONObject();
jsonObjSend.put("action", "myAction");
jsonObjSend.put("type", tipo);

现在一切都好,但如果我想添加

jsonObjSend.put("elementi", arrayOfElements);

其中arrayOf Elements必须是字符串数组。我该怎么办?

/ ** 编辑

我需要的例子

{
  "action": "myAction",
  "type": "elementi",
  "elementi": [
    "3287498357",
    "23472857"
  ]
}

3 个答案:

答案 0 :(得分:35)

在看到这个例子之后,我明白你正在尝试做类似Java JsonObject array value to key

中提到的事情
jsonObjSend.put("elementi", new JSONArray(new Object[] { "value1", "value2", "value3"} ));

简化:

JSONArray arr = new JSONArray();
arr.put("value1");
arr.put("value2");
//...
jsonObjSend.put("elementi", arr);

答案 1 :(得分:0)

JSONObject jsonBody = new JSONObject();
jsonBody.put("action", "myAction"); //action is your string
jsonBody.put("type", "elementi");
JSONArray arr = new JSONArray();
JSONObject elementi= new JSONObject();
itemList.put("id", id);
itemList.put("name", name);
arr.put(elementi);
jsonBody.put("elementi", arr);

答案 2 :(得分:0)

您必须将数组显式添加为 JSONArray 对象:

// JSON object to hold the information, which is sent to the server
JSONObject jsonObjSend = new JSONObject();
jsonObjSend.put("action", "myAction");
jsonObjSend.put("type", tipo);
jsonObjSend.put("elementi", JSONArray(arrayOfElements));