c#处理字符串(json)中的单双引号
本文关键字:单双引 json 处理 字符串 | 更新日期: 2023-09-27 17:53:21
我使用c#来处理JSON格式来解析一些数据,我遇到了这种情况,我得到这种JSON:
"{"imperial":" 54 1/4" "}"
你可以看到在
后面有一个英寸符号(双引号)1/4
导致我出错。我该如何处理这个双引号?
我使用Newtonsoft。JSON解析JSON,我尝试了很多方法,如替换"to",这给了我同样的错误。
我想过正则表达式也许?有什么建议吗?
谢谢!
代码(对于<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
, EscapeNonAscii
和EscapeHTML
(请查看文档)
在您的案例中,EscapeHTML
是最有趣的。引用文档:
EscapeHTML
: HTML (<,>, &, ', ")和控制字符(如换行符)被转义。