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

  • 相关阅读:
    JSP学习笔记
    Java之String、StringBuffer、StringBuilder的区别
    Android开发笔记——Handler总结
    深搜_八皇后(HDU_2553)
    广搜_优先队列和记录搜索路径(HDU_1026)
    深搜_素数环(HDU_1016)
    深搜_奇偶减枝(HDU_1010)
    转载 ASP.NET MVC学习之(5):Html.ActionLink
    启动万维网发布服务(W3SVC)
    What is POID
  • 原文地址:https://www.cnblogs.com/jhlong/p/9516628.html
Copyright © 2011-2022 走看看