0

我正在获取以下格式的 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);
4

1 回答 1

0

您已经找到了解决方法,但我认为对这个问题有解释是件好事。

您遇到的问题在括号中;[]表示数组,而对象是带有 的市场{}。这意味着要反序列化State对象数组中的输入字符串,您的输入字符串应按以下方式格式化:

[{\"NAME\",\"state\"},\n{\"Alabama\",\"01\"},\n{\"Alaska\",\"02\"}]
于 2013-05-11T17:57:48.917 回答