一尘不染

当只有一个对象时将XML转换为Json Array

json

我目前正在使用Newtonsoft将一些xml转换为json,以从RestExtension返回。

我的xml格式为

<Items>
  <Item>
    <Name>name</Name>
    <Detail>detail</Detail>    
  </Item>
  <Item>
    <Name>name</Name>
    <Detail>detail</Detail>    
  </Item>
</Items>

我将其转换为json

JsonConvert.SerializeXmlNode(xmldocument);

如果有多个项目,则可以正常工作。

我得到这个-json中的项目数组(这是我需要的):

{"Items":{"Item":[{"Name":"name","Detail":"detail"},{"Name":"name","Detail":"detail"}]}}

但是,当只有一个时,可以这样转换(而不是数组):

 {"Items":{"Item":{"Name":"name","Detail":"detail"}}}

正在阅读此内容的我的应用程序开发人员需要json返回一组项,无论是否存在一个或多个。

有没有办法欺骗它,以为它是数组,或者有人可以建议另一种方法?


阅读 583

收藏
2020-07-27

共1个答案

一尘不染

阅读有关序列化Xml节点的文档

您可以通过这种方式强制使用JSON数组

var xml = @"<Items xmlns:json='http://james.newtonking.com/projects/json' >
             <Item json:Array='true'>
                <Name>name</Name>
                 <Detail>detail</Detail>    
            </Item>
            </Items>";

演示

2020-07-27