转换为JSON时,在XML属性之前出现@符号

时间:2019-05-15 08:24:59

标签: c# json json.net

我正在将以下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

这是对的吗?还是库中有错误?

1 个答案:

答案 0 :(得分:1)

是的。

据记录具有该行为:

  

属性以@开头,并且应位于对象的开头。

(来自https://www.newtonsoft.com/json/help/html/ConvertingJSONandXML.htm

我认为这是因为JSON只是具有结构属性,而XML具有元素和属性(它们的名称可能重叠:同一元素的子元素与属性的名称相同)。通过为名称加上前缀,输出JSON保留了区别。