Вместо того, чтобы пытаться заставить JSON создать сложный для использования Map<String, Object>
или List<Object>
, я бы порекомендовал библиотеку, которая может анализировать JSON в древовидной модели.Хотя многие библиотеки могут делать такие вещи, Google Gson - мой любимый.Вы можете использовать его JsonParser
класс для анализа JSON как дерева, начинающегося с корня JsonElement .Если у вас есть JsonElement
, его будет значительно проще использовать, чем некоторые Object
, которые могут быть List
и Map
.
JsonElement e = new JsonParser().parse(someJson);
if (e.isJsonObject()) {
// JsonObject has many of the same methods as a Map
JsonObject obj = e.getAsJsonObject();
String foo = obj.get("foo").getAsString();
int bar = obj.get("bar").getAsInt();
} else if (e.isJsonArray()) {
JsonArray array = e.getAsJsonArray();
// JsonArray implements Iterable and can be used a lot like a List
for (JsonElement element : array) {
...
}
}
Создать JSON легкодерево, использующее эти объекты.