json.net xml转换为json格式时,如何将指定节点转换成数组

摘要:
[CDATA[]]˃输出json结果:{"@nameCN":"电测","step":[{"signer":{"@staffID":"800706","@nameCN":"","#cdata-section":}},{"signer":{"@staffID":"090477","@nameCN":"","#cdata-section":}}]},{"@nameCN":"节能","step":[{"signer":[{"@staffID":"800608","@nameCN":"","#cdata-section":},{"@staffID":"800808","@nameCN":"","#cdata-section":}]},{"signer":[{"@staffID":"800602","@nameCN":"","#cdata-section":},{"@staffID":"800803","@nameCN":"","#cdata-section":}]}]}上面的结果用红色标记出来的就是差别,step下有多个signer节点时,输出结果signer是数组,只有1个signer节点输出signer不是数组,如何在只有一个signer节点时也输出为数组
 usingSystem.Xml.Linq;
 usingNewtonsoft.Json;
 Response.ContentType = "application/json";
 XDocument xdoc =XDocument.Load(path);
 Response.Write(JsonConvert.SerializeXNode(xdoc));

xml 片段 :

<specialty nameCN="电测">
        <step>
            <signer staffID="800706" nameCN=""><![CDATA[]]></signer>
        </step>
        <step>
            <signer staffID="090477" nameCN=""><![CDATA[]]></signer>
        </step>
    </specialty>
    <specialty nameCN="节能">
        <step>
            <signer staffID="800608" nameCN=""><![CDATA[]]></signer>
            <signer staffID="800808" nameCN=""><![CDATA[]]></signer>
        </step>
        <step>
            <signer staffID="800602" nameCN=""><![CDATA[]]></signer>
            <signer staffID="800803" nameCN=""><![CDATA[]]></signer>
        </step>
    </specialty>

输出 json 结果:

{
  "@nameCN": "电测",
  "step": [
    {
      "signer": {
        "@staffID": "800706",
        "@nameCN": "",
        "#cdata-section": 
      }
    },
    {
      "signer": {
        "@staffID": "090477",
        "@nameCN": "",
        "#cdata-section": 
      }
    }
  ]
},
{
  "@nameCN": "节能",
  "step": [
    {
      "signer": [
        {
          "@staffID": "800608",
          "@nameCN": "",
          "#cdata-section": 
        },
        {
          "@staffID": "800808",
          "@nameCN": "",
          "#cdata-section": 
        }
      ]
    },
    {
      "signer": [
        {
          "@staffID": "800602",
          "@nameCN": "",
          "#cdata-section": 
        },
        {
          "@staffID": "800803",
          "@nameCN": "",
          "#cdata-section": 
        }
      ]
    }
  ]
}

上面的结果 用红色标记出来的就是差别,step下有多个signer节点时,输出结果signer是数组

只有1个signer节点 输出signer不是数组,如何在只有一个signer节点时也输出为数组

免责声明:文章转载自《json.net xml转换为json格式时,如何将指定节点转换成数组》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python-输入输出-input ouputPC电脑端如何多开Skype,一步搞定!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

xml与Excel转换

使用Python将如下xml格式转换为Excel格式: xml转为xls格式文件: xml格式如下: <?xml version="1.0" encoding="UTF-8"?> <photos> <photo src="http://t.zoukankan.com/assets/images/00...

配合JAVA的AJAX使用

概要 Ajax是“Asynchronous JavaScript and XML”的简称,即异步的JavaScript和XML。 readyState属性用来返回当前的请求状态,有五个可选值。分别是0到4,每个值的含义如下描述。 0:“未初始化”状态, 表示已经创建一个XMLHttpRequest对象,但是还没有初始化请求对象。 1:“打开”状态,表示已经...

java序列化/反序列化之xml、protobuf、protostuff 的比较与使用例子

目录 1、背景 2、测试   2.1、环境   2.2、工具   2.3、说明   2.4、结果   2.5、结论 3、xml简单教程   3.1、准备   3.2、代码  4、protobuf简单教程   4.1、快速入门     1、下载.exe编译器     2、编写.proto文件     3、利用编译器编译.proto文件生成javabean  ...

其他查询

1、SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份或者用于对记录进行存档。 语法: SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename IN 子句可用于向另一个数据库中拷贝表。 1)备份表信息 SEL...

小说下载阅读器_章节保存为XML并显示

这篇文章主要是讲程序中对XML,XSLT,XSD,JS的简单应用。 1.当小说的章节都下载完毕,章节内容经过过滤,去除多余的html标记和其它垃圾信息,变成干净的文本内容。怎么保存这些章节内容呢? 1)解决方法:将所有章节依次写入同一个文本文件,并将小说名作为文件名。 优点: 通用性最好,不管是PC平台还是手机、平板电脑都能直接阅读,且人可直接阅读。 缺点...

android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在...