Javascript JSON 自定义反序列化



我正在使用一个 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,因此重要的是所有键都可用,即使它们没有值,这就是为什么我想声明对象并让反序列化器使用它们。

例如,我希望能够访问Community.nodes[3].data.info,即使它没有在 JSON 文件中设置。

很多人(包括Microsoft ASP.NET(使用 NuGet 包 Json.NET。

JsonSerializer类提供了对对象序列化方式的很大程度的自定义。

但是,要访问像Community.people[3].job.salary这样的深度嵌套字段,您必须确保在访问最后一个字段之前没有空嵌套对象。

在您的示例中,您可能希望将Person.Job设置为默认值或在 Person 的构造函数中传递Job

如果问题出在 JavaScript 方面,我建议您查看原型模式作为起点,并将此问题作为从 JSON 字符串分配给它的参考。

最新更新