【发布时间】:2020-09-23 06:13:38
【问题描述】:
我正在尝试反序列化具有属性的 json 对象
其中第一个键名未知,而内部映射始终包含名为“key1”和“key2”的两个属性。
{
"operation_rand":
{
"key1": 1005,
"key2": 5
}
}
我有代码:
Operation.java
public class Operation {
private Map<String, Map<String, Integer>> operationDetails = new HashMap<>();
@JsonAnyGetter
public Map<String, Map<String, Integer>> getOperation() {
return operationDetails;
}
}
主要
ObjectMapper mapper = new ObjectMapper();
Operation op = mapper.readValue(jsonData, Operation.class);
Map<String, Map<String, Integer>> oDetails = address.getOperation();
但是我得到了错误:
Can not deserialize instance of java.lang.String out of START_OBJECT token 第 1 行第 25 列,这是内部地图的起点。
关于如何映射内部地图的任何想法? 如果地图只有一层深,我可以获取正确的值。
{
"operation_rand": 100
}
并将上面的地图调整为 Map<String, Integer>
【问题讨论】:
标签: java json jackson annotations