xml轉換為json格式時,如何將指定節點轉換成數組 Json.NET


使用Json.NET轉換xml成json時,如果xml只有單個節點,但json要求是數組形式[], 

JsonConvert.SerializeXmlNode

並不能自動識別

示例如下:

RecordArray要求是數組格式
<root>
<Record>
</Record>
<RecordArray>
<a>1</a>
<b>2</b>
</RecordArray>
</root>

  轉換后的json不能滿足要求

{
  "root": {
    "Record": "
",
    "RecordArray": {
      "a": "1",
      "b": "2"
    }
  }
}

  

解決辦法

查閱資料后發現很簡單

xml根節點需要加上 屬性

xmlns:json='http://james.newtonking.com/projects/json'

需要轉換為數組的節點加上屬性
json:Array='true'


如下所示
<root xmlns:json='http://james.newtonking.com/projects/json'>
<Record>
</Record>
<RecordArray json:Array='true' >

<a>1</a>
<b>2</b>
</RecordArray>
</root>

 

  轉換后的json可以滿足要求了

{
  "root": {
    "Record": "",
    "RecordArray": [
      {
        "a": "1",
        "b": "2"
      }
    ]
  }
}

  

xml添加屬性:

添加屬性的時候,可以直接在創建XmlElment的時候,通過XmlElement的SetAttribute來為節點創建屬性,或者是創建

     一個XmlAttribute實例:XmlAttribute  xmlArr=XmlDocument.CreateAttribute("屬性值"),然后通過XmlNode的

    Attributes.append(XmlArribute)來添加

 

也可以string字符替換(只適用於沒重復節點的xml)

xmlInfo = xmlInfo.Replace("<RecordArray>", "<RecordArray json:Array='true'>");

 

 

 

參考:

https://www.newtonsoft.com/json/help/html/ConvertXmlToJsonForceArray.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM