使用javascriptserializer解析JSON数据会引发异常

时间:2013-05-11 15:14:08

标签: c# 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 个答案:

答案 0 :(得分:0)

你找到了解决方法,但我认为对这个问题有解释是好的。

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

[{\"NAME\",\"state\"},\n{\"Alabama\",\"01\"},\n{\"Alaska\",\"02\"}]