【发布时间】:2017-06-21 07:46:43
【问题描述】:
我有一个 JSON 文件,它有单独的小节,所有小节都有相同类型的数据,有什么方法可以直接映射这些内部对象
{
"pre-execution": {
"nodes": [],
"links": []
},
"execution": {
"nodes": [],
"links": []
},
"completion": {
"nodes": [],
"links": []
}
}
我只对节点和链接类型的数据感兴趣,并不关心它属于哪个类别。
我的班级结构是这样的
public class NodeElement{
private List<Node> nodes;
private List<Link> links;
}
有什么方法可以直接通过 Gson 库映射它。我正在使用的代码是 null
Gson gson=new Gson();
NodeElement nodeElements=gson.fromJson(jsonString,NodeElement.class);
我得到的原因是因为它没有遵循正确的层次结构。关键是我只对Node 和Link 感兴趣,所以为什么要担心层次结构。
如果不是 Gson,任何其他库都可以使用吗?
我试过这样做
for(Map.Entry<String,JsonElement> entry : entrySet){
if(entry.getKey().contains("node")){
siteFlowElement.addNodes((List<GoJSNode>) obj.get(entry.getKey()));
}
if(entry.getKey().contains("link")){
siteFlowElement.addLinks((List<GoJSLink>) obj.get(entry.getKey()));
}
}
System.out.println("Nodes"+siteFlowElement.getNodes());
System.out.println("Links"+siteFlowElement.getLinks());
但它返回 null,
Json 对象填充良好
【问题讨论】:
-
你可以看看@stackoverflow.com/questions/19551242/…这可能会有所帮助
-
这没有帮助,因为问题是通过 Gson 解析 json,我知道问题已经是我不想制作确切的类层次结构,因为我只对节点和链接