【问题标题】:create array data in json with c#使用 c# 在 json 中创建数组数据
【发布时间】:2016-07-22 14:46:22
【问题描述】:

我正在尝试创建以下 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() + "]");

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

【问题讨论】:

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


【解决方案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);

【讨论】:

  • 很好,感谢您的启发,所以基本上我的解决方案是创建一个数组,比如说数组 a 和数组 b,然后像你在答案中写的那样创建一个二元素数组的数组,然后我转换不在 JavaScriptSerializer() 但我确实在 JsonConvert.SerializeObject(address);
  • @awancilik 没错,JsonConvert 也很好用。
【解决方案2】:

您还可以使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2021-06-05
    相关资源
    最近更新 更多