java如何在具有动态根键时反序列化JSON
我面临着这个问题
{"1234345": [{
"queue": "XXX",
"name": "XXXXX",
"entries": [{
"points": 54,
"isInactive": false,
}],
"tier": "ASDF"
}]}
但它也可以有这样的形状:
{
"1234345": [{
"queue": "XXX",
"name": "XXXXX",
"entries": [{
"points": 54,
"isInactive": false,
}],
"tier": "ASDF"
}],
"22683144": [{
"queue": "XXX",
"name": "XXXXX",
"entries": [{
"points": 54,
"isInactive": false,
}],
"tier": "ASDF"
}]
}
根密钥是一个数组,它可以在每次调用服务时更改。因此,它是动态的
我对这件事很生气。我听说使用动态键的最佳选择是使用地图。但在本例中,如何命名将包含该映射的属性?在这个例子中,作为一个数组,我不知道它是否应该是一个映射,或者如何创建相应的POJO。有什么帮助吗
首先我要做的是为条目创建一个类
public class myEntry {
public String points;
public String isInactive;
}
然后是它的容器类
public class myObject {
public String queue;
public String name,
public myEntry[] entries;
public String tier;
}
但我被困在这里,我不知道如何继续
# 1 楼答案
你总是可以用^{} 。考虑你在你的问题中张贴的JSON:
使用流行的Java JSON解析器Jackson,可以将其解析为
Map<String,Object>
对象:您可以使用POJO代替^{} :
对于Jackson,您的代码如下: