2016-07-13 3 views
0

У меня есть следующий код JSON,Как десериализации объект JSON в C#

{ 
    "dataContainer":{ 
    "sheets":{ 
     "1":{ 
      "0":{ 
       "1":{ 
        "type":6, 
        "value":2, 
        "value2":"11-15-1991" 
       }, 
       "2":{ 
        "type":10, 
        "value":3, 
        "value2":3 
       } 
      }, 
      "1":{ 
       "1":{ 
        "type":6, 
        "value":7, 
        "value2":"11-16-1991" 
       }, 
       "2":{ 
        "type":10, 
        "value":8, 
        "value2":8 
       } 
      } 
     }, 
     "2":{ 
      "0":{ 
       "1":{ 
        "type":6, 
        "value":2, 
        "value2":"11-15-1991" 
       }, 
       "2":{ 
        "type":10, 
        "value":3, 
        "value2":3 
       } 
      }, 
      "1":{ 
       "1":{ 
        "type":6, 
        "value":7, 
        "value2":"11-16-1991" 
       }, 
       "2":{ 
        "type":10, 
        "value":8, 
        "value2":8 
       } 
      } 
     } 
    }} 
} 

мне нужно десериализации этот код, я попробовал, что один,

Dictionary<string,object> dict = ser.Deserialize<Dictionary<string, object>>(obj); 
List<object> sheetObject = new List<object>(); 
sheetObject = ((Dictionary<string, object>)dict["dataContainer"]).Values.ToList(); 
public object sheets = new object(); 
sheets = sheetObject[0]; 

, но это не работает я хочу работать, как показано ниже,

sheets[1][0][1].type 

Как достичь этого?

+1

Не проходит проверку. –

+0

http://json2csharp.com –

+0

Также вы не можете получить эту структуру. –

ответ

0

Json.NET - это библиотека для использования. Эта библиотека имеет функцию, которая принимает строку JSON и возвращает «динамическую» переменную, представляющую JSON. Синтаксис выглядит следующим образом:

dynamic dict = JsonConvert.DeserializeObject(YOUR_JSON_STRING); 

Теперь вы можете получить доступ ко всему JSON дерево динамически, например:

dynamic sheetObject = dict.dataContainer.sheets; 

Чтобы перебрать детей на любом уровне, просто использовать Еогеасп:

foreach (dynamic child in sheetObject.Children()) { /* do something */ } 
+0

Спасибо, чувак, но если есть какие-либо возможности без использования Json.NET .. можете ли вы решить его –

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