2014-06-04 4 views
0

Привет У меня возникли проблемы с десериализации некоторые JSON в C# .net класса, используя newtonsoft desrializeobjectНьютон Json Deserialize Массив массива

Пример JSON

[ 
    [ 
     { 
      "id": "1", 
      "Colour": "Red" 
     }, 
     { 
      "cid": "1", 
      "Shape": "Square" 
     }, 
     { 
      "cid": "2", 
      "Shape": "Circle" 
     } 
    ] 
] 

Я хочу, чтобы это появилось в моем C# .net класс как это извините опечатки и синтаксис, но вы получите общую идею.

public class object { 

public int id; 
public string colour; 
public Shape[] shapes; 

} 

public class Shape { 
    public int cid; 
    public string shapename; 
} 

как я могу это достичь?

+0

JSON массив, который вы разместили в вопросе, недействителен, так как он содержит 3 элемента, один содержит идентификатор, а anohter two содержит cid, они не являются элементами вложенных элементов, пожалуйста, измените их. –

+0

@Mak JSON действителен (попробуйте [jsonlint.com] (http://jsonlint.com/)), хотя это не имеет большого смысла. –

+0

@GrayFoxNZ JSON, похоже, не соответствует структуре класса, которую вы создали. Это ваш настоящий JSON? –

ответ

0

Смотрите мой ответ здесь:

json serialize list in list

Вы должны создать RootObject первый. Что представляет собой первый список. RootObject содержит список с классом формы

Вы также можете указать аннотации [JsonProperty], чтобы убедиться, что правильные свойства Json сопоставлены с вашим объектом Shape.

+0

Хорошо спасибо, пожалуйста, попробуйте свое предложение сегодня вечером – GrayFoxNZ

0

В принципе, это не то, к чему сериализуется класс. Если вставить этот JSON в качестве класса в Visual Studio, и вы получите это:

public class Rootobject 
    { 
     public Class1[][] Property1 { get; set; } 
    } 

    public class Class1 
    { 
     public string id { get; set; } 
     public string Colour { get; set; } 
     public string cid { get; set; } 
     public string Shape { get; set; } 
    } 

Так что вопрос является JSON. Если это не ваш JSON, и вы не можете ничего сделать, чтобы исправить его форматирование, я сначала его сериализую в динамический объект, а затем делаю необходимые преобразования.

+0

Да, мой не мой JSON плохо попробует ваше предложение сегодня вечером. Спасибо друг – GrayFoxNZ

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