#java #android #arrays #json
Вопрос:
Я хочу создать json в следующем формате,
Как я могу добавить много объектов в один массив.
{
Data: [
{"dataType":"com.google.weight",
"startDate":"2021-04-1308:00",
"endDate":"2021-04-13",
"Weight":"65"},
{"dataType":"com.google.weight",
"startDate":"2021-04-1308:00",
"endDate":"2021-04-13",
"Weight":"85"},
{"dataType":"com.google.weight",
"startDate":"2021-04-1308:00",
"endDate":"2021-04-13",
"Weight":"95"}
]
}
Код:
JSONObject jsonObject = new JSONObject();
JSONObject json = new JSONObject();
jsonObject.put("dataType", dataSet.getDataType().getName().toString());
jsonObject.put("startDate", dateFormat.format(dp.getStartTime().toString());
jsonObject.put("endDate", dateFormat.format(dp.getEndTime().toString());
jsonObject.put("Weight", dp.getValue(field).toString());
json.put("Data", jsonObject) //this is wrong i guess. it replaces all the old values
Используя приведенный выше код, я получаю следующий результат. Это означает замену всех остальных значений и печать только одного объекта. Мне нужен массив объектов. любая помощь была бы великолепна!!!
{
Data:
{"dataType":"com.google.weight",
"startDate":"2021-04-1308:00",
"endDate":"2021-04-13",
"Weight":"95"}
}
Ответ №1:
вы добавляете объект в другой объект. вот почему у тебя это есть. Вы пропустили массив
JSONObject jsonObject = new JSONObject();
JSONObject json = new JSONObject();
jsonObject.put("dataType", dataSet.getDataType().getName().toString());
jsonObject.put("startDate", dateFormat.format(dp.getStartTime().toString());
jsonObject.put("endDate", dateFormat.format(dp.getEndTime().toString());
jsonObject.put("Weight", dp.getValue(field).toString());
// you missed this
JSONArray jsonArray = new JSONArray();
jsonArray.put(jsonObject);
// now you put an array into an object
json.put("Data", jsonArray)
Ответ №2:
у вас должен быть массив var, затем добавьте каждый объект json в массив
Ответ №3:
Я думаю, вам нужен JSONArray, который будет помещен в качестве данных. Так что
jsonArray.add(jsonObject);
json.put(«Данные», JSONArray);
Что-то вроде этого. Я не проверял код. Я не уверен, называется ли он JSONArray, является ли имя метода add. Но вам определенно нужен JSONArray для хранения JSONObject.