如何解析不是“name:value”格式的JSON数据?

时间:2014-02-19 11:52:00

标签: c# json winforms json.net

我收到的一些JSON数据不在“name:value”对中,但它是这样的:

[[\"ManagerID\",\"EmployeeID\",\"Domain\"],[\"2\",\"110\",\"BBU\"]]

我无法使用JsonConvert.DeserializeObject解析此数据,因为我收到错误

  

“要修复此错误,请将JSON更改为JSON对象(例如   {“name”:“value”})或将反序列化类型更改为数组或a   实现集合接口的类型(例如ICollection,IList)   像可以从JSON数组反序列化的List。   JsonArrayAttribute也可以添加到类型中以强制它   从JSON数组反序列化。路径'',第1行,第1位。“

我正在使用Visual Studio 2008和.net framework 3.5。如果您需要更多说明,请告诉我。

1 个答案:

答案 0 :(得分:2)

让我们假设你的对象属于这个类:

class MyObject
{
    public int ManagerID { get; set; }
    public int EmployeeID { get; set; }
    public string Domain { get; set, }
}

然后你的JSON与它不匹配,你的JSON应该如下:

{"ManagerID": 2, "EmployeeID": 110, "Domain": "BBS"}

如果你真的想阅读上面提到的JSON:

JsonConvert.DeserializeObject<string[][]>(yourString);

尝试

Newtonsoft.Json.JsonConvert.DeserializeObject<string[][]>("[[\"ManagerID\",\"EmployeeID\",\"Domain\"],[\"2\",\"110\",\"BBU\"]]")

但那不是方便的结构......