2017-03-20 27 views
1

我需要将json转换为xml,然后再将该json转换回xml,但是我在使用org.json lib时丢失了json数组对象 - 。json xml转换器有json字符串中的数组

JSON字符串 -

{ 
    "readResult": { 
     "errors": [{ 
      "code": 400 
     }] 
    } 
} 

代码库 - 使用org.json LIB

String xml = XML.toString(new JSONObject("inputjsonstring")); 
String json = XML.toJSONObject(xml).toString(); 

输出XML和JSON -

XML - <readResult><errors><code>400</code></errors></readResult> 
JSON - 
{ 
     "readResult": { 
      "errors": { 
       "code": 400 
      } 
     } 
} 

这里此JSON没有任何阵列它是在原始的json中。请建议备用库做同样的事情。

+0

你犯了一个错字吗?你写“json回到xml”,但它应该是“xml回json”,对吧? – mevdschee

+0

也许这个问题可以帮助你? http://stackoverflow.com/questions/13271369/convert-json-to-xml – mevdschee

回答

0

没有办法从XML字符串

<readResult> 
    <errors> 
      <code>400</code> 
    </errors> 
</readResult> 

,图书馆可以“猜测”那code是一个数组

做这类事情,你需要通过一个去Java模型和使用图书馆等Jackson再生JSON

有几个选择映射从XML到Java:XStream就是其中之一

+0

我有一个json的开始,同时转换JSON到XML,应该有一些标志属性,可以定义如果XML元素是一个阵列。如果我能找到一些解决方案,我会研究XStream。 – vashishth

+0

您可以使用XSLT 3.0中的json-to-xml()函数: https://www.w3.org/TR/xslt-30/#json-to-xml-mapping –

0

也许你可以使用JSON-XML映射来帮助说明如下:

读者和由JsonReaderWriterFactory生产的作家提供了JavaScript对象符号(JSON)内容的XML API。 (source

它可以转换:

{ 
    "readResult": { 
     "errors": [{ 
      "code": 400 
     }] 
    } 
} 

到:

<root type="object"> 
    <readResult type="object"> 
     <errors type="array"> 
      <item type="object"><code type="number">400</code></item> 
     </errors> 
    </readResult> 
</root> 

注:我在JavaScriptPHP也实现了这个转换。

+0

这对我来说看起来不错。它也可以在Java中使用吗? – vashishth