我使用Newtosoft.Json来解析Json,这在C#中很正常:)
不幸的是,我得到了一个json字符串,如下所示:
{"data": {"str_1": "' u001ev u0003u001f"u0003u001d %b)v#"}}
调用JObject.Parse(aboveLine)
会出现以下错误Bad JSON escape sequence: v. Path 'data.str_1', line 1, position [number].
v
是垂直线的符号。
有没有一种方法可以让我毫无例外地解析上面的json?
我检查了规范,发现'\v'是一个有效的JSON。此处提供了规格:https://www.json.com/json-object#object-带字符串
我还检查了源代码,它不支持'\v'。这就是为什么我创建了pull请求,我希望它能合并到Newtonsoft中。Json:https://github.com/JamesNK/Newtonsoft.Json/pull/489
更新
对我来说很不幸http://json.com是错误的,并且v
不是JSON中的有效反弹字符。RFC 4627指定了所有这些,并且v
不在其中:(我在上添加了对此的评论http://json.com
更新2
我在博客上详细描述了这个故事。如果您感兴趣,请查看:http://stapp.space/bad-json-escape-sequence-v/
使用u000B
(垂直选项卡)而不是v
,您将获得一个有效的JSON。
\v是垂直线的符号
u007C
是垂直线|