JSON.Net使用根名称序列化列表

时间:2014-04-30 14:30:43

标签: json serialization json.net

我看了一眼,找不到任何东西,这真的开始让我烦恼......

我已经获得了JSON.Net和以下代码片段

var x = insList.Select(a => new
{
    ac = a.CreatedDate,
    bd = a.CreatedBy
 });
 this.Context.Response.Write(x.ToJSON());

.ToJSON()是一个简单的扩展方法:

public static string ToJSON(this object obj)
    { return JsonConvert.SerializeObject(obj); }

json输出

enter image description here

理想情况下,我喜欢的是具有相同根名称的高亮位,而不仅仅是{}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

对象在JSON中没有名称,属性可以。 (参见JSON.org。)因此,如果要命名对象,则必须使其成为另一个包含对象的属性的值。

var x = insList.Select(a => new
{
    rootName = new 
    {
        ac = a.CreatedDate,
        bd = a.CreatedBy
    }
});

这将产生以下JSON:

[
  {
    "rootName": {
      "ac": "0001-01-01T00:00:00",
      "bd": 0
    }
  },
  {
    "rootName": {
      "ac": "0001-01-01T00:00:00",
      "bd": 0
    }
  },
  {
    "rootName": {
      "ac": "0001-01-01T00:00:00",
      "bd": 0
    }
  }
]