我以下列格式获取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);
答案 0 :(得分:0)
你找到了解决方法,但我认为对这个问题有解释是好的。
你遇到的问题是括号; []
表示数组,而object是带有{}
的市场。这意味着要在State
个对象的数组中反序列化输入字符串,您的输入字符串应按以下方式格式化:
[{\"NAME\",\"state\"},\n{\"Alabama\",\"01\"},\n{\"Alaska\",\"02\"}]