如何解析双精度数组数组的字符串表示?

时间:2016-09-19 21:26:12

标签: c# arrays json

我在C#中传递了一个JSON对象。原始对象是双精度数组的数组,例如

var arrayObject = [[1.2,3,1,0],[2.3,1,0,9],[3,6.7,9,1]]

要在JavaScript和C#之间传递,它已转换为数组数组的JSON表示形式:

string json = "[[1.2,3,1,0],[2.3,1,0,9],[3,6.7,9,1]]"

我该如何解析这个?我想做一些像JavaScriptSerializer().Deserialize<List<myObject>>(json)这样的事情,但是这给了我一个错误,“类型'myObject'不支持反序列化数组。”

这里的JSON对象没有太多结构......我真正需要做的就是将其解析为一组数组。 我已经阅读了一些关于Json.NET的内容,但我不想添加不必要的类库。有没有一种简单的方法来解析这个字符串?

1 个答案:

答案 0 :(得分:3)

首先,将其反序列化为序列化程序确实理解的内容 - double[][] - 然后您可以根据需要进行转换:

string json = "[[1.2,3,1,0],[2.3,1,0,9],[3,6.7,9,1]]";
double[][] arrayOfArrays = new JavaScriptSerializer().Deserialize<double[][]>(json);

假设您的myObject课程类似于:

class myObject {
    public double[] Arr { get;set; }
}

然后您可以使用LINQ将其转换为您正在寻找的内容:

List<myObject> list = arrayOfArrays.Select(x => new myObject { Arr = x }).ToList();