Анализ данных JSON с помощью javascriptserializer выдает исключение
Я получаю данные в формате JSON в следующем формате:
"[[\"NAME\",\"state\"],\n[\"Alabama\",\"01\"],\n[\"Alaska\",\"02\"]]"
Я пытаюсь разобрать это с System.Web.Script.Serialization.JavaScriptSerializer
следующим образом:
[Serializable]
private class State
{
private string Name { get; set; }
private string Code { get; set; }
}
private static List<State> getStates(string jsonData)
{
var json = new JavaScriptSerializer();
var parsedResult = json.Deserialize<List<State>>(jsonData);
return parsedResult;
}
Я получаю ошибку Type 'State' is not supported for deserialization of an array.
Что я делаю не так? Пожалуйста, предложите выход.
Обновить
Я несколько решил проблему, так как мне нужен только сбор данных в формате запроса. Следующий код добился цели:
var parsedResult = json.Deserialize<List<string[]>>(jsonData);
1 ответ
Вы нашли обходной путь, тем не менее, я думаю, что хорошо иметь объяснение этой проблемы.
Проблема у вас в скобках; []
означает массив, тогда как объект продается с {}
, Это означает, что для десериализации входной строки в массиве State
Объекты вашей входной строки должны быть отформатированы следующим образом:
[{\"NAME\",\"state\"},\n{\"Alabama\",\"01\"},\n{\"Alaska\",\"02\"}]