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

2021-07-20 23:06

阅读:564

标签:roo   new   creat   ORC   com   vertx   自动识别   ack   font   

使用Json.NET转换xml成json时,如果xml只有单个节点,但json要求是数组形式[], 

JsonConvert.SerializeXmlNode

并不能自动识别

示例如下:

RecordArray要求是数组格式

1
2

  转换后的json不能满足要求

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

  

解决办法

查阅资料后发现很简单

xml根节点需要加上 属性

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

需要转换为数组的节点加上属性
json:Array=‘true‘


如下所示



1
2

 

  转换后的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 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

标签:roo   new   creat   ORC   com   vertx   自动识别   ack   font   

原文地址:https://www.cnblogs.com/jhlong/p/9516628.html


评论


亲,登录后才可以留言!