2017-05-23 117 views
1

我有以下JSON結構:轉換JSON爲XML在Java屬性

{ 
    "userId": "55", 
    "Unit": [ 
     { 
     "id": "1", 
     "unitname": "unit1", 
     "eventId": "2", 
     "transactiontype": "1" 
     }, 
     { 
     "id": "2", 
     "unitname": "unit2", 
     "eventId": "2", 
     "transactiontype": "1" 
     }, 
     { 
     "id": "3", 
     "unitname": "unit3", 
     "eventId": "2", 
     "transactiontype": "2" 
     } 
    ] 
} 

,我需要將其轉換爲下面的XML格式:

<Units userId="55"> 

<Unit id="1" unitname="unit1" eventId="2" transactiontype="1"/> 
<Unit id="2" unitname="unit2" eventId="2" transactiontype="1"/> 
<Unit id="3" unitname="unit3" eventId="2" transactiontype="2"/> 

</Units> 

雖然通過Java我是個嘗試它得到一個XML,但它顯示XML元素如下:

<UnitId>1</UnitId> 

有人可以請幫我關於什麼需要b完成後,我可以獲得所需的XML格式,即作爲屬性。

+0

將JSON轉換爲XML有很多種方法,您需要說出您正在使用哪一種方法以及如何使用它。 –

回答

2

也許你可以使用json.org庫。 我不確定這個圖書館是否正是你想要的。

您可以使用它像:

JSONObject json = new JSONObject(str); 
String xml = XML.toString(json); 

toString可以採取第二個參數提供XML根節點的名字。

XML到JSON使用 XML.toJSONObject(java.lang.String)

POM

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20170516</version> 
</dependency> 
0

下面是一個XSLT 3.0溶液。

<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template name="main"> 
    <xsl:variable name="in" select="json-doc('input.json')" as="map(*)"/> 
    <Units userId="{$in?userId}"> 
    <xsl:for-each select="$in?Unit?*" 
     <Unit id="{?id}" unitname="{?unitname}" 
      eventId="{?eventId}" transactiontype="{?transactiontype}"/> 
    </xsl:for-each> 
    </Units> 
</xsl:template> 

</xsl:transform> 

您可以通過安裝Saxon-PE 9.7來從Java運行此操作。