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
最新文章
- COM技术の组件
- winform 绘制label 中文字 - 摘
- c#中 HttpContext作用(一)【转】
- 使用PHP把下划线分隔命名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写
- hdu4521 小明系列的问题——小明序列(LIS变种 (段树+单点更新解决方案))
- JDK1.8源码阅读系列之三:Vector
- win7 wifi热点设置
- 机器学习之--线性回归sigmoid函数分类
- UICollectionView在初始化的时候移动到某个距离
- 中文字符串和UTF-8编码字符串相互转换
- Appium1.6 定位iOS元素和操作元素
- 设置adb server的端口号
- [Android Pro] 终极组件化框架项目方案详解
- UVa 1602 网格动物(回溯)
- XeLaTeX下如何以原大小显示PNG
- EMC检测标准
- 一次Win10安装体验
- Bootstrap学习笔记(四)
- html_parser.py
- python的模块itsdangerous