List<myObject> objects = new List<myObject>
myObject
{
string a;
string b;
}
a
包含objects[i]
的名称,b
包含objects[i]
的父级名称。
如何将此列表序列化为文件,以便稍后创建树状图像?
例如,objects
列表包含四个元素:
{a=planet, b=solarsystem},
{a=moon, b=planet}
{a=solarsystem, b=universe}
{a=meteor, b=solarsystem}
我想序列化这个以便稍后我可以使用javascript读取文件并获得足够的信息来生成此图表:
答案 0 :(得分:1)
如果我是你,我会这样设计:
我会有一个C#类,稍后会被序列化为JSON并在JavaScript上使用它
基本上我们将使用对象定义层次结构,这就是所谓的对象图。
看起来,您提到的对象属于同一类型,因此我们将其称为Node
。
public class Node {
public string Name { get; set; }
public List<Node> ChildNodes { get; set; }
}
使用它,创建对象层次结构:
private Node CreateXBonezNodes() {
Node universeNode = new Node("Universe");
Node solarSystemNode = new Node("Solar System");
Node planetNode = new Node("Planet");
Node meteorNode = new Node("Meteor");
Node moonNode = new Node("Moon");
//Now define the hierarchy
universeNode.ChildNodes.Add(solarSystemNode);
solarSystemNode.ChildNodes.Add(planetNode);
solarSystemNode.ChildNodes.Add(meteorNode);
planetNode.ChildNodes.Add(moonNode);
return universeNode;
}
当你将对象序列化为JSON时,你会期望得到这个
{
Name: "Universe",
ChildNodes: [
{
Name: "Solar System",
ChildNodes: [
{
Name: "Planet",
ChildNodes: [
{
Name: "Moon",
ChildNodes: []
}
]
},
{
Name: "Meteor",
ChildNodes: []
}
]
}
]
}
将此JSON反序列化为JS对象时,只需遍历ChildNodes
属性即可轻松访问对象图。
希望这有帮助
答案 1 :(得分:0)
您应该处理对象服务器端以获得真正的树节点,即
myObject
{
string name;
List<myObject> children;
}
如果您的序列化库知道如何将其发送到客户端,那么在树客户端显示数据将非常简单。