首页 > 解决方案 > 如何反序列化 C# 中具有相同元素集合的 Json 元素

问题描述

我在 json 中有一个元素集合,其中包含与嵌套元素集合相同的元素集合,因此如何在 c# 中反序列化

我已经试过了。我创建了一个 C# 元素类,其属性也是同一类集合的属性

//C# Code
class pages
{
    public System.Collections.ObjectModel.Collection<elements> elements { get; set; }
    public string name { get; set; }
}
class elements
{
    public string type { get; set; }
    public string name { get; set; }
    public string title { get; set; }

    public System.Collections.ObjectModel.Collection<choices> choices { get; set; }

    public System.Collections.ObjectModel.Collection<elements> element { get; set; }
}

//My Json
{
"pages": [
 {
  "name": "page1",
  "elements": [
  {
 "type": "panel",
 "name": "Q1",
 "elements": [
  {
   "type": "text",
   "name": "Q2",
   "title": "What is your age ?"
  },
  {
   "type": "radiogroup",
   "name": "QHidden",
   "choices": [
    {
     "value": "1",
     "text": "<18"
    },
    {
     "value": "2",
     "text": "18-30"
    },
    {
     "value": "3",
     "text": "30-50"
    },
    {
     "value": "4",
     "text": ">50"
     }
     ]
     }
    ]
    }
   ]
  }
  ]
  }

标签: c#.netjson

解决方案


我创建了一个具有相同属性的单独元素类

   class elements
   {
     public string type { get; set; }
     public string name { get; set; }
     public string title { get; set; }

     public System.Collections.ObjectModel.Collection<choices> choices { get; set; }

     public System.Collections.ObjectModel.Collection<elements2> element { get; set; 
     }
   }

   class elements2
   {
     public string type { get; set; }
     public string name { get; set; }
     public string title { get; set; }

     public System.Collections.ObjectModel.Collection<choices> choices { get; set; }
   }

这对我有用


推荐阅读