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

回到顶部