繁体   English   中英

处理Json的动态结构

[英]Handle dynamic structure of Json

我有这样的Json结构:

metadata : {
   id : "something",
   data : {
      1 : {
         id : "something",
         simple : {
             ASD3472GJVMKG : { id : "something", name : "something" },
             A892SADKLAWEN : { .. },
             KVMSD309234KG : { .. },
      2 : { .. }, 
      ...

动态生成有两个属性,它们是data属性和simple属性。 data的名称属性是递增生成的数字种类。 simple的名称属性是动态生成的随机字符串。

实际上,我已经完成了对simple属性的反序列化,这种过程并不简单(foreach和substring无处不在)。 顺便说一下,我正在使用Json.NET和C#。 我需要用这种糟糕的Json结构做什么样的解决方案? 我已经看过JObject和Dictionary类,但仍然没有弄明白。

提前致谢

您在上面显示的结构不是有效的JSON。 您需要为JSON.NET输入生成有效的JSON,或者为此类数据创建特殊的解析器。

如果您正在使用有效的JSON并且事先不知道属性名称,则可以使用以下反序列化方法之一。

  1. 将对象反序列JObject而不是更具体的类型。 这允许您访问对象的各个属性。
  2. 将对象反序列Dictionary<string, JObject> 在实践中,这几乎等同于之前的选项。
  3. 将对象反序列化为包含以下字段的对象。 在反序列化期间,所有未映射到对象模型中的某个其他字段或属性的属性都将添加到此字典中。

     [JsonExtensionData] private Dictionary<string, JObject> _extensionData; 

暂无
暂无

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

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