我有具有单独的子部分和所有的子区段具有相同的数据类型的一个JSON文件,是否有任何方式,我们可以直接映射这些内对象GSON节点/链接对象映射
{
"pre-execution": {
"nodes": [],
"links": []
},
"execution": {
"nodes": [],
"links": []
},
"completion": {
"nodes": [],
"links": []
}
}
我只感兴趣在节点和链接类型的数据,而不是从它属于哪个类别。
我的阶级结构看起来像这样
public class NodeElement{
private List<Node> nodes;
private List<Link> links;
}
有什么办法,我可以直接通过GSON库映射。我正在使用的代码是空的
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对象是填充细
你可以看看@ https://stackoverflow.com/questions/19551242/parsing-a-complex-json-object-using-gson-in-java这可能有助于 – Rahul
它是没有用的,因为问题是通过Gson解析json,我知道问题在于我不想制作确切的类层次结构,因为我只对节点和链接感兴趣 – Ravi