json 添加转义符

vh0rcniy  于 2022-12-01  发布在  其他
关注(0)|答案(2)|浏览(155)

存在XML消息:

<Data>
  <aa>12345\n67890</aa>
  <bb>98765\\4321<bb>
<Data>

我需要将xml转换为json:

String strXmlData = xmlHelper.SelectSingleNode(xml,"//Data").OuterXML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strJsonData);

String jsonData = JsonConvert.SerializeXmlNode(xmlDoc, Newtonsoft.Json.Formatting.None)

看来json的结果是被jsonConvert自动添加了转义符。

{"aa":"12345\\n67890","bb":"98765\\\\4321"}

我需要保持值不变(例如,\n作为新行而不是“\n”字符串)。是否有任何方法可以防止JsonConvert生成转义符?或者是否有任何建议可以删除转义符?
任何建议都是赞赏,谢谢!

bihw5rsg

bihw5rsg1#

我只能建议使用一些字符串函数(或RegEx)来解决问题

String jsonData = JsonConvert
    .SerializeXmlNode(xmlDoc, Newtonsoft.Json.Formatting.None).Replace("\\\\","\\");
qco9c6ql

qco9c6ql2#

尝试执行XSLT转换作为预处理步骤,以便在转换之前转换转义序列。
根据我的经验,绝大多数XML到JSON(反之亦然)的转换都需要一些自定义的预处理或后处理,以获得所需的精确输出。就我个人而言,我通常发现在XSLT 3.0中“手工”完成转换更容易,因为它提供了完全的控制。

相关问题