Преобразовать JSONArray в список

У меня есть JSONArray, возвращенный в вызове службы отдыха, как показано ниже:

[
 {"REFDATA_KEY":"Rf1","REFDATA_VALUE":"Daily"},
 {"REFDATA_KEY":"Rf2","REFDATA_VALUE":"Weekly"}, 
 {"REFDATA_KEY":"Rf3","REFDATA_VALUE":"Monthly"}
]

Мне нужно преобразовать его в

[
 {Value:"Rf1",label:"Daily"},
 {value:"Rf2", label:"Weekly"},
 {value:"Rf3",label:"Monthly"}
]

Как это преобразовать?

Какую java-библиотеку JSON вы используете?

Izruo 04.04.2018 23:07

См. Этот ответ Json в список

MG_Bautista 04.04.2018 23:07

Возможный дубликат Преобразование json в список объектов

pedrohreis 04.04.2018 23:08

Я могу использовать Джексон или Джексон любой из них

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

Ответы 2

Сделать это можно очень просто.

var sd = [{"REFDATA_KEY":"Rf1","REFDATA_VALUE":"Daily"},{"REFDATA_KEY":"Rf2","REFDATA_VALUE":"Weekly"},{"REFDATA_KEY":"Rf3","REFDATA_VALUE":"Monthly"}]
var list = new Array(sd.length);
for (var i = 0; i < sd.length; i++) {
	list[i] = {
		Value: sd[i]["REFDATA_KEY"],
		Label: sd[i]["REFDATA_VALUE"]
	};
}
console.info(list);

Или вы можете использовать функцию map() так:

var sd = [{"REFDATA_KEY":"Rf1","REFDATA_VALUE":"Daily"},{"REFDATA_KEY":"Rf2","REFDATA_VALUE":"Weekly"},{"REFDATA_KEY":"Rf3","REFDATA_VALUE":"Monthly"}]
var list = sd.map(obj =>{ 
   var returned = {};
   returned['Value'] = obj['REFDATA_KEY'];
   returned['Label'] = obj['REFDATA_VALUE'];
   return returned;
})
console.info(list);

Вы можете добиться этого, используя библиотеку org.json (https://mvnrepository.com/artifact/org.json/json):

Допустим, вы получаете свой ответ в переменной responseJSONArray.

JSONArray response = [
 {"REFDATA_KEY":"Rf1","REFDATA_VALUE":"Daily"},
 {"REFDATA_KEY":"Rf2","REFDATA_VALUE":"Weekly"}, 
 {"REFDATA_KEY":"Rf3","REFDATA_VALUE":"Monthly"}
]

Вы можете написать функцию reformJsonArray() следующим образом, которая берет response и возвращает List<JSONObject> по мере необходимости.

public List<JSONObject> test(JSONArray json) {
    List<JSONObject> jsonArrayList = new ArrayList<>();
    for (int index = 0; index < json.length(); index++) {
        JSONObject element = json.getJSONObject(index);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("value", element.getString("REFDATA_KEY")).put("label", element.getString("REFDATA_VALUE"));

        jsonArrayList.add(jsonObject);
    }
    return jsonArrayList;
}

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