CodeNameOne , чтение JSON без рута

Я обычно привожу карту в список, чтобы читать JSON но в этом случае у меня нет "рута". Что я должен делать ? это код, который я использую для чтения Json с использованием root:

   Map<String, Object> p = j.parseJSON(new CharArrayReader(json.toCharArray()));
   List<Map<String, Object>> list = (List<Map<String, Object>>) p.get("root");

JSON с корнем:

{root=[{nom=ayoub, prenom=Mlaouah, cin=1.344444444E9, datenaissance = {timezone = {name=Europ............

JSON без рута:

{id=1.0, idAgee = {nom=ayoub, prenom=Mlaouah, cin=1.344444444E9,.......

проверьте, есть ли у p"root", затем используйте p.get("root") или p непосредственно в существующем коде

Nikos M. 01.05.2019 13:17

java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к java.util.List

ayoub mlaouah 01.05.2019 13:27

о да, второй пример json, который у вас есть, это НЕ список, это карта

Nikos M. 01.05.2019 14:09

так как я могу читать Json? мне нужно преобразовать его в список, чтобы иметь возможность выполнять цикл (для) и читать данные. Можете ли вы посоветовать мне решение?

ayoub mlaouah 01.05.2019 14:18

прочитайте его как карту вместо списка и прокрутите ключи карты

Nikos M. 01.05.2019 14:26

Хорошо, спасибо :), .. если вы можете написать мне простой код, чтобы понять ваше решение.

ayoub mlaouah 01.05.2019 14:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Root — это трюк, который мы добавляем для разбора массивов JSON. Без рута вы просто получаете карту и можете начать запрашивать JSON, например:

Map m = (Map)p.get("idAgee");

Корень есть, если JSON является массивом для начала. Поскольку сигнатура возврата метода является Map, а не List, мы не можем вернуть List, поэтому мы обертываем ответ Map, содержащим root.

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