2017-05-23 12 views
1

私は、次のようなJSON構造を持っている:は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形式に変換する必要があります:私はミリアンペアのjavaを通してそれをしようとしている間

<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> 

XMLを取得し、それは以下のようにXML要素を示しています。何がbに必要にとして

<UnitId>1</UnitId> 

は、誰かが私を助けてください私は必要なXMLフォーマット、つまり属性を取得します。

+0

JSONをXMLに変換する方法はたくさんあります。使用しているものとその使い方を言う必要があります。 –

答えて

2

おそらく、json.orgライブラリを使用できます。 このライブラリがあなたの望むものとまったく同じものかどうかはわかりません。

あなたはそのようにそれを使用することができます:

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

toStringは、XMLのルート・ノードの名前を提供するために、二番目の引数を取ることができます。 XML.toJSONObject(java.lang.String)

を使用してJSONへ

XML 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から実行できます。

関連する問題