c# - 转换为 JSON 时,@ 符号出现在 XML 的属性之前
问题描述
我正在将以下 XML 转换为 JSON:
<NODE1>
<NODE2>200</NODE2>
<NODE3>Got the contents</NODE3>
<NODE4 INDEX="1" SIZE="2" TOTALPAGES="1" TOTAL="2">
<NODE5 ID="94086" TITLE="Bo Aung Din Lo Lu Ky" />
<NODE5 ID="94087" TITLE="Bo Aung Din Lo Lu Ky" />
</NODE4>
</NODE1>
使用以下代码:
XmlDocument doc = new XmlDocument();
doc.Load("C:\\1.xml");
string jsonText = JsonConvert.SerializeXmlNode(doc);
我得到的问题是@
符号出现在 XML 的属性之前,即,@ID
而不是ID
.
这是正确的吗?还是库中的错误?
解决方案
这是正确的。
据记录有这种行为:
属性以 @ 为前缀,并且应位于对象的开头。
(来自https://www.newtonsoft.com/json/help/html/ConvertingJSONandXML.htm)
我认为这是因为 JSON 仅具有结构属性,而 XML 具有元素和属性(它们的名称可能重叠:同一元素具有与属性同名的子元素)。通过为名称添加前缀,输出 JSON 保留了区别。
推荐阅读
- python - 将 QListWidget 的小部件行居中
- python - 动态等待python中的任务
- office365 - 想要在 office excel 功能区上使用工具提示(自定义选项卡)
- python - Pandas - 胜率计算;按两列分组并计数
- flutter - 如何在颤动中垂直对齐文本?
- java - 如何在 Travis-CI 中跳过 Java Maven 项目的 gpg 签名
- algorithm - 从 n 个数字中随机选择 m 个数字的算法的时间复杂度
- typescript - 如何从字符串数组中推断对象键的类型
- php - 我们如何在 php composer 项目中处理 RC 版本控制
- java - 使用 IText 将 PDF 中的标题从一页复制到另一页