c#处理字符串(json)中的单双引号

本文关键字:单双引 json 处理 字符串 | 更新日期: 2023-09-27 17:53:21

我使用c#来处理JSON格式来解析一些数据,我遇到了这种情况,我得到这种JSON:

"{"imperial":" 54 1/4" "}"

你可以看到在

后面有一个英寸符号(双引号)
1/4

导致我出错。我该如何处理这个双引号?

我使用Newtonsoft。JSON解析JSON,我尝试了很多方法,如替换"to",这给了我同样的错误。

我想过正则表达式也许?有什么建议吗?

谢谢!

c#处理字符串(json)中的单双引号

代码(对于<NUMBER>/<NUMBER><DOUBLE QUOTE>这样的字符串):

string json = "{'"imperial'":'" 54 1/4'" '"}";
string convertedJson = Regex.Replace(json, @"('d+'/'d+)""", "$1'''"");
var res = Newtonsoft.Json.JsonConvert.DeserializeObject(convertedJson);
结果(convertedJson):

{"imperial":" 54 1/4'" "}

在输入解析器之前,至少需要转义HTML字符(其中包括引号)。

如果你控制了JSON的生成器,你正在接收,你也在使用Newtonsoft, Newtonsoft。JSON的JsonWriter类有一个名为StringEscapeHandling的属性。

此属性可以保存几个值:Default, EscapeNonAsciiEscapeHTML(请查看文档)

在您的案例中,EscapeHTML是最有趣的。引用文档:

EscapeHTML: HTML (<,>, &, ', ")和控制字符(如换行符)被转义。