如何在 ASP.Net 中为多级 Json 格式创建模型?

How to create Models in ASP.Net for multi level Json format?

问题说明:在 asp.net 到 post 多级 json 格式的数据中构建网络 api。

Json 格式:

{
  "InfoList:"[
    {
    "Name": " Sample String 1",
    "URL": " Sample String2",
    "Info":[
        {
            "ZIP": " Sample String3 "
            "status": "Sample String4"
        }
    ]
     }
   ]
}

我试图解决这个问题。我的模型如下:

我的模特:

public class Information : InfoList
    {
        public InfoList InfoList { get; set; }
    }

public class InfoList 
        {

            public string Name { get; set; }

            public string URL { get; set; }

            public Info info { get; set; }
        }

public class Info
    {
        public string ZIP{ get; set; }

        public string status { get; set; }

    }

那些模型生成这种 Json 格式:

{
  "InfoList": {
    "Name": "sample string 1",
    "URL": "sample string 2",
    "Info": {
      "ZIP": "sample string 1",
      "status": "sample string 2"
    }
  },
  "Name": "sample string 1",
  "URL": "sample string 2",
  "Info": {
    "ZIP": "sample string 1",
    "status": "sample string 2"
  }
}

我需要那些与问题 specification.What 完全一样的括号吗?我正在使用 ASP.Net Web API 控制器。

您从 InfoList 继承了 Information,因此它自然会获得字段 NameURL 等。删除继承并更改 InfoListInfo 成员到数组或列表中,你会得到你想要的。

public class Information
{
    public InfoList[] InfoList { get; set; }
}

public class InfoList 
{
    public string Name { get; set; }
    public string URL { get; set; }
    public Info[] info { get; set; }
}

public class Info
{
    public string ZIP{ get; set; }
    public string status { get; set; }
}

您只需复制 JSON,然后创建 C# Class 文件。然后单击编辑 -> 选择性粘贴 -> 将 JSON 粘贴为 Classes。就是这样...

为此你需要 Visual Studio。

更多信息请见下文link

How to show the "paste Json class" in visual studio 2012 when clicking on Paste Special?

有效JSON

{
    "InfoList":  {
        "Name": " Sample String 1",
        "URL": " Sample String2",
        "Info": [
            {
                "ZIP": " Sample String3 ",
                "status": "Sample String4"
            }
        ]
    }
}

所以你的class一定是这样的

public class Rootobject
{
    public Infolist InfoList { get; set; }
}

public class Infolist
{
    public string Name { get; set; }
    public string URL { get; set; }
    public Info[] Info { get; set; }
}

public class Info
{
    public string ZIP { get; set; }
    public string status { get; set; }
}

您可以使用 http://json2csharp.com/ 在线工具从 json 数据字符串创建 c# class。只需复制您的 json 并获得 classes。