2016-09-19 4 views
0

Я передаю объект JSON в C#. Исходный объект представляет собой массив массивов двойников, например.Как я могу проанализировать строковое представление массива массива парных чисел?

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, но я не хочу добавлять ненужные библиотеки классов. Есть ли простой способ проанализировать эту строку?

ответ

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

Смежные вопросы