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

  • 相关阅读:
    MATLAB中的并行计算
    CVPR 2012 Highlights from Andrej Karpathy
    在.NET客户端程序中使用多线程
    AlcheMo
    笑笑
    字体模糊的解决办法 Windows Mobile
    打开windows mobile的输入模式
    XHTML MP 基础(手机网站开发基础技术)
    U盘修复资料
    历史上最昂贵的8大IT工程失误和教训
  • 原文地址:https://www.cnblogs.com/jhlong/p/9516628.html
Copyright © 2011-2022 走看看