如何从页眉和细节类创建Json

本文关键字:细节 创建 Json | 更新日期: 2023-09-27 18:25:17

这是我设计的json类,包含标题和细节,我使用的是Visual studio 2015

public class SubDetail
    {
        public string Sub1 { get; set; }
        public string Sub2 { get; set; }
        public string Sub3 { get; set; }
    }
    public class RootObject
    {
        public string No { get; set; }
        public int Age { get; set; }
        public List<SubDetail> SubDetail { get; set; }
    }

以及如何使用linq编写c#代码,并像下面的一样输出json

[
 {  
    "No":"1",
    "Age":7,
    "SubDetail":            
    [
    {   
      "Sub1":"1",
    "Sub2":"2",
    "Sub3":"3"
    },
    {
    "Sub1":"4",
    "Sub2":"5",
    "Sub3":"6"
    },
              { 
    "Sub1":"7",
    "Sub2":"8",
    "Sub3":"9"
    }               
              ]         
   }    
]

如何从页眉和细节类创建Json

有任意数量的库用于将对象图序列化为JSON格式。最流行和易于使用的是Newtonsoft JSON.NET,它将允许您使用一行代码轻松生成JSON:

var jsonString = JsonConvert.SerializeObject(myRootObject);

这与LINQ无关,主要是因为您不需要探索SubDetail集合并手动生成JSON。使用经测试的标准溶液。

public class SubDetail
{
    public string Sub1 { get; set; }
    public string Sub2 { get; set; }
    public string Sub3 { get; set; }
}
public class RootObject
{
    public string No { get; set; }
    public int Age { get; set; }
    public List<SubDetail> SubDetail { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        RootObject obj = new RootObject();
        obj.No = "1";
        obj.Age = 7;
        int lenght = 3;
        int counter = 0;
        for(int i=0; i<lenght; i++)
        {
            SubDetail detail = new SubDetail();
            detail.Sub1 = (counter + 1).ToString();
            detail.Sub2 = (counter + 1).ToString();
            detail.Sub3 = (counter + 1).ToString();
            if (obj.SubDetail == null)
                obj.SubDetail = new List<SubDetail>();
            obj.SubDetail.Add(detail);
        }
        var jsonString = JsonConvert.SerializeObject(obj);
        Console.WriteLine(jsonString);
    }
}

以下是您案例的完整示例。此外,您还需要将Newtonsoft.Json dll添加到您的项目中。您可以在Package Manager控制台中使用此行来完成此操作。

Install-Package Newtonsoft.Json -Version 7.0.1