Jackson JSON映射键作为包含对象的属性
给定这样的结构:
{ "nameOfObject": { "score": 100 },
"anotherObject": { "score": 30 }
}
是否可以将其映射到:
class Container { Map<String, ScoreKeeper> scoreKeepers;
}
class ScoreKeeper {
String name;
int score;
}
这样,您最终name
获得的ScoreKeeper
实例的属性分别设置为"nameOfObject"
和"anotherObject"
?
回答:
我坚信将您的POJO与外部化分开。将您的JSON读取到Map中,然后像这样构建您的Container /
ScoreKeeper对象(对于任何错别字都为apols):
mapper = new ObjectMapper();Map<String,Object> data = mapper.readValue(inputstream, Map.class);
Container c = new Container();
for(Map.Entry<String, Object> me : data.entrySet()) {
String key = me.getKey();
Map info = (Map) me.getValue();
ScoreKeeper sk = new ScoreKeeper();
sk.setName(key);
Integer q = info.get("score");
sk.setScore(q);
c.put(key, sk);
}
以上是 Jackson JSON映射键作为包含对象的属性 的全部内容, 来源链接: utcz.com/qa/409136.html