在c#中为json对象添加级别

时间:2014-07-28 16:05:37

标签: c# json

我使用c#json序列化得到以下json输出。它从C#数据表中填充。我需要为对象添加一个级别。

更新 我如何使这个字符串数组,而不是一个对象数组?

[{
    "Urgency": "C",
    "Picker": null,
    "CARD": null,
},
{
    "Urgency": "C",
    "Picker": null,
    "CARD": null,
}]

最终结果应为

{
  "data": [
    {
        "Urgency": "C",
        "Picker": null,
        "CARD": null,
    },
    {
        "Urgency": "C",
        "Picker": null,
        "CARD": null,
    }
  ]
}

如何将该顶级添加到现有的json输出中?

这是我的循环。

foreach (DataRow dr in dt.Rows)
{
    row = new Dictionary<string, object>();
    foreach (DataColumn col in dt.Columns)
        {
        row.Add(col.ColumnName, dr[col]);
        }
    rows.Add(row);
}
context.Response.Write(serializer.Serialize(rows).ToString());

1 个答案:

答案 0 :(得分:2)

只需创建一个匿名类:

foreach (DataRow dr in dt.Rows)
{
  row = new Dictionary<string, object>();
  foreach (DataColumn col in dt.Columns)
    {
    row.Add(col.ColumnName, dr[col]);
    }
   rows.Add(row);
}
context.Response.Write(serializer.Serialize(new { data= rows }).ToString());

如果您使用的是旧版本的.NET,那么创建一个如下所示的实际类:

public class RowsDTO {

   public Dictionary<string,object> Data { get; private set; }

   public RowsDTO(){
      data = new Dictionary<string,object>();
   }
}