我正在使用Json.NET 6.x,我注意到了奇怪的行为:
如果我想反序列化这个简单的JSON,我会收到一个错误:
反序列化的代码:
object o = Newtonsoft.Json.JsonConvert.DeserializeObject(text);
和JSON:
[
{
"Username": "tb386",
"TimestampUpdated": "2015-01-19T18:49:52.771571+01:00",
"AuthTokens": [
"Ua7JR5E7hSAxjafp6dpMrvw3HlICW3ZZdDuArMaU5ks="
]
}
]
我得到的错误是:
解析值时遇到意外的字符:U。路径'',第0行,位置0。
如果删除数组,它可以正常工作。但我所要做的就是删除数组中的字符串,使其为空:
[
{
"Username": "tb386",
"TimestampUpdated": "2015-01-19T18:49:52.771571+01:00",
"AuthTokens": [ ]
}
]
然后它工作正常。我还应该注意,序列化的JSON是由Newtonsoft库生成的,所以源代码是同一个库!
如果我在带有数组的JSON上尝试验证器(如http://jsonlint.com/),它就可以了!
有人可以帮助我吗?
附加信息:即使我在VS中添加了一个字符串并编写了硬编码的JSON,它也会失败!
string text = "[ {\"Username\": \"tb386\",\"TimestampUpdated\": \"2015-01-19T18:49:52.771571+01:00\",\"AuthTokens\": [\"Ua7JR5E7hSAxjafp6dpMrvw3HlICW3ZZdDuArMaU5ks=\"] } ]";
object o = Newtonsoft.Json.JsonConvert.DeserializeObject(text);
Newtonsoft dll的版本信息: