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

來源:互聯網
上載者:User

標籤:roo   new   creat   ORC   com   vertx   自動識別   ack   font   

使用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.add(XmlArribute)來添加

 

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

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

 

參考:https://q.cnblogs.com/q/41823/

https://stackoverflow.com/questions/21382879/xml-to-json-using-newtonsoft-issue-when-loop-over-array-of-one-element/21383423#21383423

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.