我有具有單獨的子部分和所有的子區段具有相同的數據類型的一個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