仅在一个对象时将XML转换为Json数组

Bex*_*Bex 12 .net c# xml json json.net

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

我的xml是以.的形式

<Items>
  <Item>
    <Name>name</Name>
    <Detail>detail</Detail>    
  </Item>
  <Item>
    <Name>name</Name>
    <Detail>detail</Detail>    
  </Item>
</Items>
Run Code Online (Sandbox Code Playgroud)

我把它转换为json使用

JsonConvert.SerializeXmlNode(xmldocument);
Run Code Online (Sandbox Code Playgroud)

如果有多个项目,这可以正常工作.

我得到了这个 - json中的一系列项目(这是我需要的):

{"Items":{"Item":[{"Name":"name","Detail":"detail"},{"Name":"name","Detail":"detail"}]}}
Run Code Online (Sandbox Code Playgroud)

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

 {"Items":{"Item":{"Name":"name","Detail":"detail"}}}
Run Code Online (Sandbox Code Playgroud)

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

有没有办法欺骗它认为它是一个数组或者有人建议另一种方式这样做?

med*_*eda 12

阅读有关Serialize Xml Node的文档

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

var xml = @"<Items xmlns:json='http://james.newtonking.com/projects/json' >
             <Item json:Array='true'>
                <Name>name</Name>
                 <Detail>detail</Detail>    
            </Item>
            </Items>";
Run Code Online (Sandbox Code Playgroud)

DEMO