Как задать имя JSONObject
есть код
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("id", "1");
jsonObject.put("qty", "1");
} catch (JSONException e) {
e.printStackTrace();
}
он выводит
{
"id" : 1,
"qty" : 1
}
а нужно получить вывод
{"list": [{
"id" : 2,
"qty" : 11
}]}
как это реализовать?
Ответы (1 шт):
Автор решения: Михаил Ребров
→ Ссылка
Как задать имя?
Вы его задаете когда кладете что-то в JSONObject
jsonObject.put("id", "1");
Вот сейчас вы "задали имя" полю id
Абсолютно также вы задаёте имена всем остальным полям.
Если нужно - вкладываете одни JSONObject в другие и даете нужные имена полям
Как получить то что на примере?
все просто:
- создайте еще один корневой элемент
- создайте JSONArray в котором будет храниться список объектов
- положите этот JSONArray в корневой элемент
- а в JSONArray добавьте элемент созданный ранее
рабочий пример:
try {
// создаем корневой элемент
JSONObject rootJson = new JSONObject();
// создаем массив json объектов
JSONArray listJson = new JSONArray();
// создаем элемент списка
JSONObject itemObject = new JSONObject();
// заполняем элемент списка
itemObject.put("id", 2);
itemObject.put("qty", 11);
// кладем его в JSONArray
listJson.put(itemObject);
// который в свою очередь кладем в корневой элемент в поле list
rootJson.put("list", listJson);
// приводим к строке и выводим
System.out.println(rootJson.toString());
} catch (JSONException e) {
e.printStackTrace();
}
output
{"list":[{"qty":11,"id":2}]}