用c#在json中创建数组数据

时间:2016-07-22 14:46:22

标签: c# asp.net json asp.net-mvc

我正在尝试创建以下JSON数据:

var data = [[1, 27], [2, 34], [3, 51], [4, 48], [5, 55], [6, 65], [7,
          61], [8, 70], [9, 65], [10, 75], [11, 57], [12, 59], [13, 62]];

我已经尝试过手动使用字符串构建器,但我知道这不是一个好的解决方案,然后我创建了一些这样的合并

  var bldgNum = new int[] { 1, 2, 5 };
  var flatNum = new int[] { 27, 109, 25, 200 };
  var address = bldgNum
                .Zip(flatNum, (bl, fl) => "[" + bl + ", " + fl.ToString() + "]");

也许任何人都有更好的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以创建一个数组数组,并使用JavaScriptSerializer生成一个字符串:

// This creates an array of two-element arrays:
var address = bldgNum
    .Zip(flatNum, (bl, fl) => new[] {bl, fl})
    .ToArray();
// This produces a JSON string that corresponds to your array-of-arrays:
var jss = new JavaScriptSerializer();
var str = jss.Serialize(address);

答案 1 :(得分:0)

您也可以使用Newtonsoft.Json库(您可以从NuGet获取它)。对于你的例子,这样的事情可以解决你的问题。

var result = new List<int[]> {new[] {1, 27}, new[] {2, 34}, new int[] {3, 51}};
var json = Newtonsoft.Json.JsonConvert.SerializeObject(result);