如何动态创建json?

时间:2019-08-13 08:26:39

标签: c# json c#-4.0

我需要使用类动态创建一个json。例如,以下是我的json "{'createdDate':['2019-07-20T05:53:28','2019-07-20T05:53:28']}"。我需要的课程是

public class Json
{
  public string Key {get;set;}
  public List<string> value {get;set;}
}

创建对象并分配值

var JsonObj = new Json();
JsonObj.key = "createdDate";
JsonObj.Add("2019-07-20T05:53:28");
JsonObj.Add("2019-07-20T05:53:28");    

以上类适用于单个键值对。但是问题在于键和值是动态的。键值对可能是单个或多个。我该如何解决这个问题。谁能帮助我。

1 个答案:

答案 0 :(得分:0)

我认为您的问题始于您的术语。您的课程不是json,它只是一个带有名称的列表。您需要做的就是创建命名列表,然后使用例如Newtonsoft.Json将其序列化为json。这是一些代码:

using System.Collections.Generic;
using Newtonsoft.Json;

namespace ConsoleApp1
{
    public class Program
    {
        public static void Main()
        {
            NamedList list = new NamedList();
            list.Key = "createdDate";
            list.Value.Add( "2019-07-20T05:53:28" );
            list.Value.Add( "2019-07-20T05:53:29" );

            string jsonString = JsonConvert.SerializeObject( list );
        }
    }

    public class NamedList
    {
        public string Key { get; set; }
        public List<string> Value { get; set; }= new List<string>();
    }
}