我在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的内容,但我不想添加不必要的类库。有没有一种简单的方法来解析这个字符串?
答案 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();