Javascript JSON自定义反序列化

时间:2017-07-19 09:01:57

标签: javascript c# 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,因此所有密钥都可用是很重要的,即使它们没有值,这就是为什么我要声明对象并让deserialiser使用它们。 / p>

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

1 个答案:

答案 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字符串中分配给它的参考。