ArrayList строк в JSON

У меня есть список 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"}]

Попробуйте использовать JSONArray вместо JSONObject. В настоящее время вы перезаписываете запись Name, потому что используете put.

f1sh 29.11.2018 11:30

см. stackoverflow.com/questions/17136769/…

Android Team 29.11.2018 11:31

В чем твоя проблема? Данные добавлены в JSON

Augusto 29.11.2018 11:34

Каков ваш желаемый результат?

Rohit5k2 29.11.2018 11:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
50
1

Ответы 1

Почему бы вам не объединить данные? Я думаю, что с вашего адаптера вы можете напрямую подключаться к людям, не так ли? Если да, то предлагаю вам следующее:

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"},
]

Другие вопросы по теме