Newtosoft.Json 错误 JSON 转义序列:\v。

Newtosoft.Json Bad JSON escape sequence: \v.

我正在使用 Newtosoft.Json 来解析 JSON,这在 C# 中很正常:)

不幸的是,我得到了一个 json 字符串来解析:

{"data": {"str_1": "' \u001e\v \u0003\u001f"\u0003\u001d %\b)\v#"}}

调用 JObject.Parse(aboveLine) 给我一个错误 Bad JSON escape sequence: \v. Path 'data.str_1', line 1, position [number]. \v 是竖线的符号。

有什么方法可以毫无例外地解析以上 json?

使用 \u000B(垂直制表符)代替 \v,您将获得有效的 JSON。

\v is a sign for vertical line

\u007C为竖线|

我检查了规范,发现“\v”是有效的 JSON。此处提供规范:https://www.json.com/json-object#object-with-strings

我也检查了源代码,它不支持'\v'。这就是我创建拉取请求的原因,我希望将其合并到 Newtonsoft.Json: https://github.com/JamesNK/Newtonsoft.Json/pull/489

更新

对我来说不幸的是 http://json.com is WRONG and \v is not a valid backlash char in JSON. The RFC 4627 指定了所有这些而 \v 不在其中:( 我在 http://json.com

上添加了对此的评论

更新 2

我在我的博客上详细描述了这个故事。如果您有兴趣,请查看:http://stapp.space/bad-json-escape-sequence-v/