【问题标题】:How to create Json from header and detail class如何从标题和详细信息类创建 Json
【发布时间】:2015-12-02 13:37:09
【问题描述】:

这是我设计的 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"
    }               
              ]         
   }    
]

【问题讨论】:

  • 检查我的答案,如果有什么不清楚的地方告诉我
  • var json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(yourObject);

标签: c# json linq


【解决方案1】:

有许多用于将对象图序列化为 JSON 格式的库。最流行和最容易使用的是Newtonsoft JSON.NET,它可以让你用一行轻松地生成你的JSON:

var jsonString = JsonConvert.SerializeObject(myRootObject);

这与 LINQ 无关,主要是因为您无需探索 SubDetail 集合并手动生成 JSON。使用标准的、公认的、经过测试的解决方案。

【讨论】:

  • 请给我c#中的示例代码,如何使用?我很新。谢谢
  • 认真的吗?我已经给了你一行示例代码。
【解决方案2】:
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 添加到您的项目中,您可以在包管理器控制台中使用此行来完成。

Install-Package Newtonsoft.Json -Version 7.0.1

【讨论】:

  • 我想这是一种愤怒,但无论如何:)
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多