У меня есть строка JSON, которую я хочу преобразовать в структуру Map, где Object - это либо версия Java базового типа (т.е. String, Int, Double), либо Map.или Список.
Пример строки, которую я использую для своих тестов:
"{\"cases\":[{\"documents\":[{\"files\":[{\"name\":\"a.pdf\"}]}]}]}"
Это должно читаться как массив дел, каждый из которых имеет массив документов, каждый из которых имеетмассив файлов, каждый из которых имеет имя
Я попробовал Gson от Google, но
Gson gson = new Gson();
List<Map<String, Object>> results = gson.fromJson(dictString, List.class);
дает мне:
com.google.gson.JsonParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@561777b1 failed to deserialize json object {"cases":[{"documents":[{"files":[{"name":"a.pdf"}]}]}]} given the type interface java.util.List
и я попробовал Джексона,но
List<Map<String, Object>> results = (List<Map<String, Object>>) new ObjectMapper().readValue(dictString, List.class);
дал мне:
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.List out of START_OBJECT token
at [Source: java.io.StringReader@1c5aebd9; line: 1, column: 1]
Есть ли у вас какие-либо предложения?Или для того, как правильно использовать любой из вышеперечисленных, или для другого парсера, который дает мне то, что я хочу?
Cheers
Nik