gpt4 book ai didi

java - Gson节点/链接对象映射

转载 作者:行者123 更新时间:2023-12-02 12:48:22 24 4
gpt4 key购买 nike

我有一个 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);

我得到的原因是因为它没有遵循正确的层次结构。重点是我只对 NodeLink 感兴趣,所以为什么要担心层次结构。

如果不是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 对象填充正常

最佳答案

JsonParser parser = new JsonParser();
JsonObject o = parser.parse(your json string).getAsJsonObject();

获取 JsonObject 后,迭代该对象并获取所有键的列表内的所有节点和链接

例如 - Set<Entry<String, JsonElement>> entrySet = jsonObject.entrySet();

关于java - Gson节点/链接对象映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44669875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com