我正在使用C#应用程序,我使用的数据类如下所示:
class Node {
public string name;
public int id;
public Node parent;
public Node[] children;
public Data data;
}
class Community {
public Node[] nodes;
}
class Data {
public string info;
public int value;
}
我在javascript中声明了这些对象:
var Node = {
name: '',
id: '',,
parent: '',
children: '',
data: ''
}
var Community = {
nodes: ''
}
var Data = {
info: '',
value: ''
}
这些显然是真实交易的简化版本,但我想知道如何使用我声明的对象告诉javascript JSON反序列化器正确构建字段。
我需要为此制作某种CMS,因此所有密钥都可用是很重要的,即使它们没有值,这就是为什么我要声明对象并让deserialiser使用它们。 / p>
例如,我希望能够访问Community.nodes[3].data.info
,即使它没有在JSON文件中设置。
答案 0 :(得分:0)
很多人(包括Microsoft ASP.NET)使用NuGet package Json.NET.
JsonSerializer
类提供了关于如何序列化对象的大量自定义。
但是,要访问像Community.people[3].job.salary
这样的深层嵌套字段,必须确保在访问最后一个字段之前没有空嵌套对象。
在您的示例中,您可能希望将Person.Job
设置为默认值,或者在Person的构造函数中传递Job
。
如果问题出在JavaScript方面,我建议你先看一下prototype pattern作为起点,然后this question作为从JSON字符串中分配给它的参考。