【问题标题】:Converting JSON to XML attributes in java在java中将JSON转换为XML属性
【发布时间】:2017-05-23 08:03:47
【问题描述】:

我有以下 JSON 结构:

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

有人可以帮助我了解需要做什么,以便我获得所需的 XML 格式,即作为属性。

【问题讨论】:

  • JSON 转 XML 的方法有很多种,你需要说明你使用的是哪一种,以及你是如何使用它的。

标签: java json xml


【解决方案1】:

也许您可以使用 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>

【讨论】:

    【解决方案2】:

    这是一个 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 运行它。

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 2021-10-26
      • 2016-08-09
      • 2013-11-27
      • 2013-06-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      相关资源
      最近更新 更多