Я обычно привожу карту в список, чтобы читать 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,.......
java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к java.util.List
о да, второй пример json, который у вас есть, это НЕ список, это карта
так как я могу читать Json? мне нужно преобразовать его в список, чтобы иметь возможность выполнять цикл (для) и читать данные. Можете ли вы посоветовать мне решение?
прочитайте его как карту вместо списка и прокрутите ключи карты
Хорошо, спасибо :), .. если вы можете написать мне простой код, чтобы понять ваше решение.




Root — это трюк, который мы добавляем для разбора массивов JSON. Без рута вы просто получаете карту и можете начать запрашивать JSON, например:
Map m = (Map)p.get("idAgee");
Корень есть, если JSON является массивом для начала. Поскольку сигнатура возврата метода является Map, а не List, мы не можем вернуть List, поэтому мы обертываем ответ Map, содержащим root.
проверьте, есть ли у
p"root", затем используйтеp.get("root")илиpнепосредственно в существующем коде