У меня есть список ArrayList, содержащий следующие значения
"One"
"Two"
"Three" etc.
Я пытаюсь создать из этого объект / массив JSON. Мой код ниже:
peopleNames = personAdapter.getArrayListNames();
peoplePhones= personAdapter.getArrayListPhones();
JSONNames = new JSONObject();
JSONPhones = new JSONObject();
for (int i = 0; i < peopleNames.size(); i++){
try {
System.out.println(peopleNames.get(i));
JSONNames.put("Name",peopleNames.get(i));
} catch (JSONException e) {
e.printStackTrace();
}
}
for (int i = 0; i < peoplePhones.size(); i++){
try {
JSONPhones.put("Phone",peoplePhones.get(i));
} catch (JSONException e) {
e.printStackTrace();
}
}
jsonArrayNames = new JSONArray();
System.out.println(jsonArrayNames.toString());
Однако мой вывод просто:
[{"Name":"One"}]
см. stackoverflow.com/questions/17136769/…
В чем твоя проблема? Данные добавлены в JSON
Каков ваш желаемый результат?




Почему бы вам не объединить данные? Я думаю, что с вашего адаптера вы можете напрямую подключаться к людям, не так ли? Если да, то предлагаю вам следующее:
people = personAdapter.getPersons();
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < people.size(); i++) {
JSONObject object = new JSONObject();
object.put("Name", people.name());
object.put("Phone", people.phone());
jsonArray.put(object);
}
Полученный JSON будет:
[
{"Name":"One",
"Phone": "OnePhone"},
{"Name":"Two",
"Phone": "TwoPhone"},
]
Попробуйте использовать
JSONArrayвместоJSONObject. В настоящее время вы перезаписываете записьName, потому что используетеput.