Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
如何循环wso2 esb代理服务接收的json负载_Json_Wso2_Wso2esb_Mediator_Proxy Server - Fatal编程技术网

如何循环wso2 esb代理服务接收的json负载

如何循环wso2 esb代理服务接收的json负载,json,wso2,wso2esb,mediator,proxy-server,Json,Wso2,Wso2esb,Mediator,Proxy Server,我正在使用wso2 esb构建代理服务。它向GoogleBooksAPI发送REST请求并接收json。在这个Json中,有一个动态数组,我必须将其解析为XML。我似乎不知道该怎么做 接收到的json负载 "items": [ { "volumeInfo": { "title": "Web Services", "authors": [ "Gustavo Alonso", "Fabio Casati", "Harumi Kuno",

我正在使用wso2 esb构建代理服务。它向GoogleBooksAPI发送REST请求并接收json。在这个Json中,有一个动态数组,我必须将其解析为XML。我似乎不知道该怎么做

接收到的json负载

"items": [
  {
   "volumeInfo": {
    "title": "Web Services",
    "authors": [
     "Gustavo Alonso",
     "Fabio Casati",
     "Harumi Kuno",
     "Vijay Machiraju"
    ],
    "publisher": "Springer Science & Business Media",
    "publishedDate": "2003-09-04"
   ]
  }
如果您浏览一下上面收到的Json,它类似于以下内容:items[0].authors[i]

这里的作者[我]是非常动态的,因为不同的书有不同的作者数量

如何将此有效负载转换为XML,然后作为XML发送到客户端

<items>
    <titie></title>
    <authors>
        <author></author>
        <author></author>
        <author></author>
        .
        .
        .
    </authors>
</items>

.
.
.

在outsequence中,您可以使用负载中介从JSON构建xml


从JSON转换为XML时,我几乎总是使用这种方式

首先将messageType设置为xml,您也可以设置ContentType,但我不能100%确定是否需要它

<property name="messageType" scope="axis2" value="application/xml"/>
<property name="ContentType" scope="axis2" value="application/xml"/>

接下来,使用包含根元素的有效负载工厂,将媒体类型设置为XML

<payloadFactory media-type="xml">
    <format>
        <SomeRequest xmlns="yourXMLNamespace">
            $1
        </SomeRequest>
    </format>
    <args>
        <arg evaluator="json" expression="."/>
    </args>
</payloadFactory>

$1

要将json转换为xml,只需将其放在outsequence@JorgeInfanteOsorio这就是我目前正在做的。如果我想改变结果呢?在这种情况下,您可以使用XSLT中介将json转换为xml。
<SomeRequest>
    <items>
        <volumeInfo></volumeInfo>
        <title>Web Services</title>
        <authors>Gustavo Alonso</authors>
        <authors>Fabio Casati</authors>
        <authors>Harumi Kuno</authors>
        <authors>Vijay Machiraju</authors>
        <publisher>Springer Science & Business Media</publisher>
        <publishedDate>2003-09-04</publishedDate>
    </items>
    <items>
        ...
    </items>
</SomeRequest>
<xslt key="{name of your xslt transform file}"/>