Анализ данных 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\"}]
Другие вопросы по тегам