繁体   English   中英

Javascript JSON自定义反序列化

[英]Javascript JSON custom deserialisation

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

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

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

JsonSerializer类提供了有关如何序列化对象的大量定制。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM