JSON
{
"type": {
"type1": {
"sub1": [
"sub1A": {
}
]
}
}
"type2": {
"type1": {
"sub1": [
"sub1A": {
}
]
}
}
}
У меня есть Json, как это, я не понимаю, как создать карту для этого, например
Map<String, Object> requestMap = new HashMap<>();
requestMap.get("type");
Внутри типа снова создайте карту, содержащую дополнительные данные.




В соответствии с тем, что вы поделились, вы можете использовать:
Map <String, Map<String, Map<String, Set<Map<String, String>>>>>
Или, чтобы получить более подробную информацию о работе с объектами json, вы можете посмотреть: Запросить JSONObject в java
Set? Он имеет только 1 параметр типа. У вашего 2. Ошибка компиляции!!! --- И показанный JSON недействителен, поэтому он не станет ничем, кроме исключения синтаксического анализа.
Есть две вещи: либо это недопустимый json, либо это просто объект, который он хочет сохранить, и просто назвал его json. Если мы уверены, что получаем json, то, очевидно, есть ошибка, как вы упомянули, и лучшим методом будет использование JSONObject (stleary.github.io/JSON-java/org/json/JSONObject.html). Но если второй случай верен, то то, что я упомянул (отредактировал), верно.
Я не совсем понял ваш вопрос. Но из вашего утверждения, если вы пытаетесь извлечь данные json в свой класс и эти данные JSON имеют рекурсивное сопоставление, т. е. один объект содержит себя под своим телом. Тогда я не думаю, что вам нужен HashMap, чтобы сопоставить этот json с вашим классом. Вы можете использовать один объект с полем типа самого себя, например отношения сотрудника и менеджера. например.,
class Type {
private Type type;
private String otherField;
// constructors, setters, getters
}
Теперь вы можете читать значения из типа, используя рекурсивные функции.
Используйте библиотеку JSON для анализа JSON, и взамен вы получите Map of Map (x5). --- Ну, кроме того, что это не сработает, так как это недопустимый JSON. Было бы правильно, если бы вы заменили
[]на{}.