Код: Выделить всё
{
"id": "uuid-1111"
"country": "US",
"car_brand": "Ford",
"info": {
"color": "red",
"weight": 70
}
}
Код: Выделить всё
public class Data implements Serializable {
private Map jsonData;
public Map getJsonData() {
return jsonData;
}
public void setJsonData(Map jsonData) {
this.jsonData = jsonData;
}
}
Код: Выделить всё
HashMap props = new ObjectMapper().readValue(jsonString, new TypeReference() {
});
// assign it to the jsonData attribute:
Data data = new Data();
data.setJsonData(props);
Код: Выделить всё
String infoJson = data().getJsonData().get("info").toString();
HashMap props2 = new ObjectMapper().readValue(infoJson, new TypeReference() {});
И это правильно, потому что когда я регистрирую infoJson, это выглядит так (обратите внимание, что в нем нет двойных кавычек, поверьте, это произошло потому, что оно уже было сопоставлено ранее) {color=red, Weight=70}
Поэтому я попробовал напрямую выполнить приведение к карте, и это сработало:
Код: Выделить всё
HashMap props = (HashMap) data.getJsonData().get("info");
Подробнее здесь: https://stackoverflow.com/questions/784 ... sing-of-ne