Десериализация переменной Тип массива JSON с использованием DataContractJsonSerializer - PullRequest
9 голосов
/ 01 августа 2009

У меня есть строка JSON в этой форме:

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 является массивом переменных типов, я не знаю, какой тип объекта Х должно быть

Если бы моя строка была

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

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

X = List<List<String>> 

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

1 Ответ

8 голосов
/ 01 августа 2009

Вы можете использовать Json.NET для этого.

JArray a = JArray.Parse(jsonStr);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...