zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    div 居中
    [转贴]Linux新增用户和组
    wmsys.WM_CONCAT
    [转]深刻理解Oracle数据库的启动和关闭
    [转]JAVA 程序中使用ORACLE 绑定变量( bind variable )
    考研的一些入门知识
    [转帖]什么是CPU的核心
    js空格处理函数
    [转]Vi 基础命令
    EMPTY_CLOB()/EMPTY_BLOB()使用
  • 原文地址:https://www.cnblogs.com/jhlong/p/9516628.html
Copyright © 2011-2022 走看看