从数据表在 C# 中创建 Json

本文关键字:创建 Json 数据表 | 更新日期: 2023-09-27 18:33:10

我正在使用带有 asp.net 的wdcalendar。从数据库中获取记录后,我需要将 JSON 字符串返回到页面。我有包含数据库记录的数据表,但我不确定如何将其转换为这种确切格式:

{ 
  "end" : "09/29/2013 23:59",
  "error" : null,
  "events" : [ [ 1,
        "test",
        "09/26/2013 08:11",
        "09/26/2013 08:08",
        0,
        0,
        0,
        "1",
        1,
        "loca",
        ""
      ],
      [ 2,
        "test2",
        "09/27/2013 08:11",
        "09/27/2013 08:08",
        0,
        0,
        0,
        "1",
        1,
        "loca",
        ""
      ]
    ],
  "issort" : true,
  "start" : "09/23/2013 00:00"
}

我添加了一个新行来显示包含数据库中两行的不同数据,然后在最后附加了附加信息,即上面显示的最后一行。

我希望有更好的方法,然后手动构建字符串。

谢谢。

从数据表在 C# 中创建 Json

像这样尝试

 public class RootObject
 {
public string end { get; set; }
public object error { get; set; }
public List<List<object>> events { get; set; }
public bool issort { get; set; }
public string start { get; set; }
}

创建一个对象并设置属性...您将获得所有详细信息,然后将其放入数据表中...

   Copy paste your json string it will generate the class 

http://json2csharp.com/

使用它,

public string GetJson(DataTable dt)
{
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new 
    System.Web.Script.Serialization.JavaScriptSerializer();
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    Dictionary<string, object> row = null;
    foreach (DataRow dr in dt.Rows)
    {
        row = new Dictionary<string, object>();
        foreach (DataColumn col in dt.Columns)
        {
            row.Add(col.ColumnName.Trim(), dr[col]);
        }
        rows.Add(row);
    }
    return serializer.Serialize(rows);
}

或使用JSON.NET .

string json = JsonConvert.SerializeObject(table, new Serialization.DataTableConverter());
var o = JsonConvert.DeserializeObject<DataTable>(json, new Serialization.DataTableConverter());

如果它是 Microsoft 的 .NET 2.0 的 AJAX 扩展,它会帮助你说服你的老板安装一个库吗?

其中包括System.Web.Script.Serialization.JavascriptSerializer,它用于您帖子中最后一个链接的步骤4。