Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml JSONX到JSON的转换_Xml_Json_Arrays_Jsonx - Fatal编程技术网

Xml JSONX到JSON的转换

Xml 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”} ],

我从数据库中转储了一些XML数据,需要将其重新格式化为JSON。我使用的是一个IBMDataPower数据库,所以我实际上需要将XML转换为,然后使用IBM的默认转换器,它会自动将JSONx转换为JSON

我很难定义JSONx数组的元素。以下是我目前正在尝试的:

XML

戳
阿库拉
颜色
银币
戳
一致
颜色
黄金

所需的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。。。你证明我在那件事上是错的,这会让你变得不合理的复杂。。。别忘了接受你的答案:)哈哈,没人..谢谢你的帮助..事实上我是通过观察你的答案得到的..)