我有这个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"}据我所知,它符合RFC7159 JSON标准。
这个验证器告诉我没问题:http://freeformatter.com/json-validator.html
但是,当我通过下面的代码运行它时:
public class TAction
{
public string Action = "";
}
...
TAction Params = JsonConvert.DeserializeObject<TAction>(JSON);我得到了:
Newtonsoft.Json.JsonReaderException: Bad JSON escape sequence: \U. Path 'Message', line 1, position 88.在第88位是第一个转义的静音标记:\U+0022
怎么啦?
这是JsonConvert中的错误吗?
发布于 2015-11-09 07:47:35
我开始使用\u0022和\“,然后\n进行得很好。
然后我有了另一个想法,更仔细地查看了我在移动客户端上使用的类,发现除了ToString之外,TJSONObject (Delphi Object Pascal)还有另一个stringify方法,它不做任何转义。事实证明,ToJSON方法完成了所有必需的转义,并且与JsonConvert (在我的Asp.net web服务中)兼容,所以我根本不需要进行任何自定义转义。
谢谢你的指点。他们把我引向了正确的方向。
https://stackoverflow.com/questions/33497440
复制相似问题