首页 > 代码库 > json.net xml转换为json格式时,如何将指定节点转换成数组

json.net xml转换为json格式时,如何将指定节点转换成数组

 using System.Xml.Linq; using Newtonsoft.Json;  Response.ContentType = "application/json"; XDocument xdoc = XDocument.Load(path); Response.Write(JsonConvert.SerializeXNode(xdoc));

xml 片段 :

<specialty nameCN="电测">        <step>            <signer staffID="800706" nameCN=""><![CDATA[]]></signer>        </step>        <step>            <signer staffID="090477" nameCN=""><![CDATA[]]></signer>        </step>    </specialty>    <specialty nameCN="节能">        <step>            <signer staffID="800608" nameCN=""><![CDATA[]]></signer>            <signer staffID="800808" nameCN=""><![CDATA[]]></signer>        </step>        <step>            <signer staffID="800602" nameCN=""><![CDATA[]]></signer>            <signer staffID="800803" nameCN=""><![CDATA[]]></signer>        </step>    </specialty>

 输出 json 结果:

{  "@nameCN": "电测",  "step": [    {      "signer": {        "@staffID": "800706",        "@nameCN": "",        "#cdata-section":       }    },    {      "signer": {        "@staffID": "090477",        "@nameCN": "",        "#cdata-section":       }    }  ]},{  "@nameCN": "节能",  "step": [    {      "signer": [        {          "@staffID": "800608",          "@nameCN": "",          "#cdata-section":         },        {          "@staffID": "800808",          "@nameCN": "",          "#cdata-section":         }      ]    },    {      "signer": [        {          "@staffID": "800602",          "@nameCN": "",          "#cdata-section":         },        {          "@staffID": "800803",          "@nameCN": "",          "#cdata-section":         }      ]    }  ]}

上面的结果 用红色标记出来的就是差别,step下有多个signer节点时,输出结果signer是数组

只有1个signer节点 输出signer不是数组,如何在只有一个signer节点时也输出为数组

 

json.net xml转换为json格式时,如何将指定节点转换成数组