【发布时间】:2017-08-26 10:18:48
【问题描述】:
我有如下的 json 字段。如何将其反序列化为字符串、字符串映射?
s:{
"g":0.0,
"p":0.0,
"m":0.0,
"media":{
"1":{"key":0,"value":0},
"2":{"key":0,"value":0},
"3":{"key":0,"value":0},
"4":{"key":0,"value":0},
...},
"pr":{
"1":{"key":0,"value":0},
"2":{"key":0,"value":0},
"3":{"key":0,"value":0},
...}
}
我试过这样
public JsonNode s;
@JsonGetter("s")
public Map<String,String> getS() {
if (s == null) {
return null;
}
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map;
map = mapper.convertValue(score, new TypeReference<Map<String, Object>>(){});
Map<String,String> result;
for (Map.Entry<String, Object> entry : map.entrySet()) {
if(entry.getValue() instanceof String){
result.put(entry.getKey(), (String) entry.getValue());
}
}
return result;
}
它可以用于测试,但是我收到下一个真实数据错误
无法从 START_OBJECT 中反序列化 java.lang.String 的实例 [来源:未知;行:-1,列:-1](通过引用 链:java.util.LinkedHashMap["media"])
有什么建议吗?
【问题讨论】: