У меня возникла проблема при преобразовании объекта вложенного списка в JSON. Я использую объектный преобразователь, и он только конвертирует начальные значения, и после этого в нем есть один массив, и он не проходит по этому списку.
Я попробовал некоторые базовые итерации, используя JsonNode root = mapper.valueToTree (obj), чтобы я мог перебирать внутренний массив, но я не получаю результат. Я новичок в этом преобразовании синтаксического анализа.
фрагмент кода -
public class JsonUtils {
public static <T> String toJsonString(final T obj) throws IOException {
final ObjectMapper mapper = new ObjectMapper();
String jsonString = null;
try {
//JsonNode root = mapper.valueToTree(obj);
jsonString = mapper.writeValueAsString(obj);
} catch (final JsonProcessingException e) {
throw e;
} catch (IOException e) {
throw e;
}
return jsonString;
}
public static <T> String toJsonString(final List<T> lstObject) throws JSONException, IOException {
final JSONArray jsonArray = new JSONArray();
for (final T object : lstObject) {
final String json = JsonUtils.toJsonString(object);
final JSONObject jsonObj = new JSONObject(json);
jsonArray.put(jsonObj);
}
return jsonArray.toString();
}
}
Итак, вот результат, который я получаю -
[2, [{"geoMarketId":1,"geoname":"AP","geoId":1,"checked":false},
{"geoMarketId":7,"geoname":"EP","geoId":2,"checked":false},
{"geoMarketId":16,"geoname":"Japan","geoId":3,"checked":true},
{"geoMarketId":18,"geoname":"LA","geoId":4,"checked":true},
{"geoMarketId":22,"geoname":"MEA","geoId":5,"checked":true},
{"geoMarketId":24,"geoname":"NA","geoId":6,"checked":false}]]
Фактический результат, который должен прийти-
{"geoMarketId":1,"geoname":"AP","geoId":1,"checked":false,
marketName:{"marketname":JP,"marketname":"AP","marketname":MP}}
Мое преобразование JSON игнорирует этот внутренний список в том же индексе.
Есть ли какой-нибудь способ, которым мой класс json может выполнять итерацию, а также преобразовывать этот внутренний список в JSON?