2016-09-19 57 views
0

我在C#中傳遞一個JSON對象。原始對象是雙精度數組的數組,例如,如何解析雙精度數組的數組的字符串表示形式?

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

如何可以解析這樣的:

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

爲了JavaScript和C#這已經被轉換爲一個數組的數組的JSON表示之間通過?我想要做一些類似於JavaScriptSerializer().Deserialize<List<myObject>>(json)的事情,但是這給了我一個錯誤,即「對類型'myObject'不支持數組的反序列化」。

這裏沒有太多關於JSON對象的結構......我真正需要做的就是將其解析爲一組數組。 我讀了一些關於Json.NET,但我不想添加不必要的類庫。有沒有簡單的方法來解析這個字符串?

回答

2

首先,反序列化到的東西串行確實明白 - 一個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(); 
+0

謝謝---一個優雅的解決方案。 – user2441511

相關問題