Reputation: 2997
// JSON object to hold the information, which is sent to the server
JSONObject jsonObjSend = new JSONObject();
jsonObjSend.put("action", "myAction");
jsonObjSend.put("type", tipo);
For now is everything ok but if I want to add
jsonObjSend.put("elementi", arrayOfElements);
where arrayOf Elements must be an array of strings. How can I do?
/** EDIT
EXAMPLE OF WHAT I NEED
{
"action": "myAction",
"type": "elementi",
"elementi": [
"3287498357",
"23472857"
]
}
Upvotes: 11
Views: 35287
Reputation: 1682
You have to explicitly add the array as a JSONArray object:
// 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));
Upvotes: 0
Reputation: 1
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);
Upvotes: 0
Reputation: 26017
After seeing the example I understood that you are trying to do something similar as asked in Java JsonObject array value to key
jsonObjSend.put("elementi", new JSONArray(new Object[] { "value1", "value2", "value3"} ));
To simplify:
JSONArray arr = new JSONArray();
arr.put("value1");
arr.put("value2");
//...
jsonObjSend.put("elementi", arr);
Upvotes: 52