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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值