Json.net 错误的JSON转义序列

Json.net 错误的JSON转义序列,json.net,Json.net,我有一个JSON字符串: {"Time":"11/03/2015 05:32:29.273","Message":"Error loading chirps. Cannot create file \U+0022E:\U+005CUsers\U+005Cgwardell\U+005CDocuments\U+005CSRChirp\U+005CPictures\U+0022. Access is denied","Source":"BT","Method":"GetChirpsFromServer

我有一个JSON字符串:

{"Time":"11/03/2015 05:32:29.273","Message":"Error loading chirps. Cannot create file \U+0022E:\U+005CUsers\U+005Cgwardell\U+005CDocuments\U+005CSRChirp\U+005CPictures\U+0022. Access is denied","Source":"BT","Method":"GetChirpsFromServer.SaveMedia.SaveBitmap","ChirpID":"9851","LogType":"Error","DeviceType":"Win","Action":"RecordLog","UserID":"98000001","DeviceID":"3675"}
据我所知,它符合RFC 7159 JSON标准

这个验证器告诉我它可以:

但是,当我运行此代码时:

public class TAction
{
    public string Action = ""; 
}
...
TAction Params = JsonConvert.DeserializeObject<TAction>(JSON);
在位置88处是第一个转义标记:\U+0022

怎么了


这是JsonConvert中的一个bug吗?

我开始使用\u0022和\“和\n,这很好

然后我有了另一个想法,更仔细地研究了我在移动客户端上使用的类,发现TJSONObject(Delphi Object Pascal)除了ToString之外还有另一个stringify方法,它不做任何转义。事实证明,ToJSON方法做了所有需要的转义,并且与JsonConvert(在我的Asp.net web服务中)兼容所以我根本不需要做任何逃跑的习惯


谢谢你的指点。它们让我朝着正确的方向前进。

据我所知,
U
应该是
U
,而
+
根本不应该在那里。你看,在这方面,用
\“
转义可能更常见。如果没有其他错误,则更紧凑。Bob77是正确的——JSON转义序列是。它应该是
\u0022
而不是
\U+0022
。顺便说一句,您的JSON不会使用
Newtonsoft.Json.JsonReaderException: Bad JSON escape sequence: \U. Path 'Message', line 1, position 88.