2009-08-01 3 views
9

У меня есть строка JSON в таком виде:Десериализация переменных типа JSON массива, используя DataContractJsonSerializer

string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]" 

Я пытаюсь десериализация JSON, используя C# .NET десериализатор DataContractJsonSerializer с следующим фрагментом кодом

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)); 
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>); 
X data = (X)serializer.ReadObject(ms); 

Теперь, поскольку массив JSON представляет собой массив переменных типов, я не знаю, какой тип объекта X должен быть

Если m у Струнный были

jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]" 

Я мог бы использовать это:

X = List<List<String>> 

и что будет работать для меня. Мне было интересно, есть ли способ десериализации массива JSON переменной типа?

ответ

8

Чтобы сделать это, вы можете использовать Json.NET.

JArray a = JArray.Parse(jsonStr); 

JArray будет содержать либо строки, либо вложенные JArray в зависимости от JSON.

+0

Я использую этот сборник, и это фантастика. Я очень рекомендую это. –

+0

Спасибо, Джеймс, который действительно работал для меня – Selene

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