2016-06-08 3 views
0

Это похоже на другие публикации, но мой вариант заключается в том, что мой json-объект начинается как массив массивов, и я не могу его десериализовать.JsonConvert.DeserializeObject массив массивов

class Program 
{ 
    static void Main(string[] args) 
    { 
     var json = @"[[{""f1"":1, ""f2"":2}]]"; 
     var obj = JsonConvert.DeserializeObject<RootObject[]>(json); 
    } 
} 

public class RootObject 
{ 
    public List<InnerObject> InnerObjects { get; set; } 
} 

public class InnerObject 
{ 
    public int f1 { get; set; } 
    public int f2 { get; set; } 
} 

Я также попытался

JsonConvert.DeserializeObject<List<RootObject>>(json); 

и различные другие варианты. Текст исключения начинается «Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип« jsontest.RootObject », потому что для типа требуется объект JSON (например, {« name »:« value »}) для десериализации правильно «.

ответ

1

Ваш JSON соответствует List<List<InnerObject>>, а не RootObject[]. (Для последнего JSON нужно будет выглядеть так: [{ "InnerObjects" : [{"f1": 1, "f2": 2}] }]).

Try десериализации, как это:

var list = JsonConvert.DeserializeObject<List<List<InnerObject>>>(json); 

Fiddle: https://dotnetfiddle.net/ELnmfg

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

  • Нет связанных вопросов^_^