Xml JSONX到JSON的转换
我从数据库中转储了一些XML数据,需要将其重新格式化为JSON。我使用的是一个IBMDataPower数据库,所以我实际上需要将XML转换为,然后使用IBM的默认转换器,它会自动将JSONx转换为JSON 我很难定义JSONx数组的元素。以下是我目前正在尝试的: XMLXml JSONX到JSON的转换,xml,json,arrays,jsonx,Xml,Json,Arrays,Jsonx,我从数据库中转储了一些XML数据,需要将其重新格式化为JSON。我使用的是一个IBMDataPower数据库,所以我实际上需要将XML转换为,然后使用IBM的默认转换器,它会自动将JSONx转换为JSON 我很难定义JSONx数组的元素。以下是我目前正在尝试的: XML 戳 阿库拉 颜色 银币 戳 一致 颜色 黄金 所需的JSON输出 {“类别”:[ {“prod”:“Acura”,“Color”:“Silver”}, {“prod”:“Accord”,“Color”:“Gold”} ],
戳
阿库拉
颜色
银币
戳
一致
颜色
黄金
所需的JSON输出
{“类别”:[
{“prod”:“Acura”,“Color”:“Silver”},
{“prod”:“Accord”,“Color”:“Gold”}
],
“状态”:“成功”
}
我遇到的问题是,我无法使prod
和color
成为同一个JSON对象的一部分。相反,我得到的输出如下:
<product-list>
<product>
<name>Acura</name>
<color>SILVER</color>
</product>
<product>
<name>Accord</name>
<color>Gold</color>
</product>
</product-list>
{“类别”:[{
“ID”:[
“:Acura”,
“:协议”
],
“姓名”:[
“:银色”,
“:黄金”
]
}]}
下面是我正在使用的JSONx代码,它生成了有问题的JSON:
:
:
我可以看出,
标记正在经历一个条件并在循环中创建一个JSON对象,但我不明白在它获得颜色
和prod
的值之后如何创建JSON对象。如何确保正确解析这些值?您必须在数据库到xml
解析方面做更多工作,才能得到如下xml:
<product-list>
<product>
<name>Acura</name>
<color>SILVER</color>
</product>
<product>
<name>Accord</name>
<color>Gold</color>
</product>
</product-list>
阿库拉
银币
一致
黄金
这种方法可以更容易地解析它
您展示的xml可能可以做到这一点,但它会让您陷入不合理的复杂性。。。我想
编辑:我的编程环境还没有准备好这样的东西。。。所以请告诉我结果
<json:object xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx">
<json:array name="Category">
<xsl:for-each select="product">
<json:object>
<json:string name="prod"><xsl:value-of select="name"/></json:string>
<json:string name="Color"><xsl:value-of select="color"/></json:string>
</json:object>
<xsl:for-each>
<json:array>
</json:object>
还是这样
<json:object xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx">
<json:array name="Category">
<xsl:for-each select="product">
<xsl:text>{<xsl:text>
<json:string name="prod"><xsl:value-of select="name"/></json:string>
<json:string name="Color"><xsl:value-of select="color"/></json:string>
<xsl:text>}<xsl:text>
<xsl:for-each>
<json:array>
</json:object>
{
}
我认为第一个很好。。。如果对象需要名称,请选择最后一个。您好,我得到了答案,我尝试了多种可能性,这是可能性之一,我将获得该问题中提到的输出
<json:object xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx">
<json:array name="Categories">
<xsl:for-each select="sql/row">
<json:object>
<xsl:for-each select="column">
<xsl:variable name="colName" select="name" />
<xsl:choose>
<xsl:when test="$colName = 'PROD ">
<json:string name="name"> <xsl:value-of select="value"/></json:string>
</xsl:when>
<xsl:when test="$colName = 'NAME'">
<json:string name="ID"> <xsl:value-of select="value"/></json:string>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</json:object>
</xsl:for-each>
</json:array>
</json:object>
请告诉我如何解析您提到的XML,并像我提到的那样以JSON格式打印它小心那些智能引号..+1。。。你证明我在那件事上是错的,这会让你变得不合理的复杂。。。别忘了接受你的答案:)哈哈,没人..谢谢你的帮助..事实上我是通过观察你的答案得到的..)