gpt4 book ai didi

java - 反序列化许多子节点以添加对对象的引用 xStream java

转载 作者:行者123 更新时间:2023-12-02 07:29:17 25 4
gpt4 key购买 nike

您好,我正在反序列化以下图表:

<grafo>
<nodo id="1">
<child id="2"/>
</nodo>
<nodo id="2">
<child id="3"/>
<child id="4"/>
</nodo>
<nodo id="3">
<child id="4"/>
</nodo>
<nodo id="4">
<child id="1"/>
</nodo>

我需要将子节点与图表列表中其他节点的引用链接起来,这意味着在解码过程中我不能只创建一个新节点并使用为我提供读者的属性设置它的 id,我需要它与图表上已有的节点共享它的属性,为了能够做到这一点,我在 GraphConverter 类中尝试使用以下函数:

public Object unmarshal(HierarchicalStreamReader reader,UnmarshallingContext arg1) {
Grafo graph= new Grafo();
ArrayList<ArrayList<String>> handlechilds= new ArrayList<ArrayList<String>>();
while (reader.hasMoreChildren())
{
reader.moveDown();
Nodo node= new Nodo(reader.getAttribute("id"));
graph.nodos.add(node);
reader.moveDown();
//reader.getAttribute("id") ->> this just gives me the value of the fisrt node but not the anothers!!
reader.moveUp();
reader.moveUp();
}
return graph;
}

我正在考虑保存边的值并在另一个中添加引用以迭代图表,但我意识到当读者只返回其中一个子项时,我需要所有它们。

最佳答案

了解Object references在 XStream 中。

xstream.setMode(XStream.ID_REFERENCES);

关于java - 反序列化许多子节点以添加对对象的引用 xStream java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142025/

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