存在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生成转义符?或者是否有任何建议可以删除转义符?
任何建议都是赞赏,谢谢!
2条答案
按热度按时间bihw5rsg1#
我只能建议使用一些字符串函数(或RegEx)来解决问题
qco9c6ql2#
尝试执行XSLT转换作为预处理步骤,以便在转换之前转换转义序列。
根据我的经验,绝大多数XML到JSON(反之亦然)的转换都需要一些自定义的预处理或后处理,以获得所需的精确输出。就我个人而言,我通常发现在XSLT 3.0中“手工”完成转换更容易,因为它提供了完全的控制。