JSON.NET不会反序列化到我的对象中,抛出异常

时间:2013-05-02 15:19:19

标签: c# json.net

我的JSON(myString)看起来像这样:

"http://d.opencalais.com/dochash-1/0701d73f-2f99-39e1-8c29-e61ee8bf3238/cat/1":
{
  "_typeGroup": "topics",
  "category": "http://d.opencalais.com/cat/Calais/Law_Crime",
  "classifierName": "Calais",
  "categoryName": "Law_Crime",
  "score": 0.869
}

我试图将上面的确切字符串反序列化为一个对象:

public class OpenCalaisResult
{
    public string _typeGroup {get; set; }
    public string category { get; set; }
    public string categoryName { get; set; }
    public string classifierName { get; set; }
    public decimal score { get; set; }
}

我正在尝试这段代码:

OpenCalaisResult myObject = (OpenCalaisResult)JsonConvert.DeserializeObject(myString, typeof(OpenCalaisResult), settings);

我得到一个例外:

  

{“转换值时出错   \ “http://d.opencalais.com/dochash-1/0701d73f-2f99-39e1-8c29-e61ee8bf3238/cat/1 \”   输入'MyApp.Parsers.JsonTypes.OpenCalaisResult'。路径   '',第1行,第78位。“}

知道我做错了吗?

2 个答案:

答案 0 :(得分:5)

你的json应该是这样的

 {
 "http://d.opencalais.com/dochash-1/0701d73f-2f99-39e1-8c29-e61ee8bf3238/cat/1":
  {
    "_typeGroup": "topics",
    "category": "http://d.opencalais.com/cat/Calais/Law_Crime",
    "classifierName": "Calais",
    "categoryName": "Law_Crime",
    "score": 0.869
   }
  }

答案 1 :(得分:0)

http://www.json.org/

显示对象的格式为...

{...}

您的JSON形式是......

x:{...}

我猜测'x'是被[de]序列化的类的类型......我不相信你的库支持它。

JSON支持有点随机。