繁体   English   中英

WSO2 JSON数组处理

[英]WSO2 JSON Array Processing

我有一个json数组(如下所示),该数组记录在我的wso2序列中。

有效负载:[{“ id”:“ 346”,“ sys”:“ 8”,“ name”:“ A bldg”},{“ id”:“ 345”,“ sys”:“ 8”,“ name” :“ bbldg 3”}}]

现在,我要迭代数组。 我怎么做? 我现在想为每行记录名称。 我尝试了几种选择,但无法正常工作,不胜感激!

我的序列如下所示:

<sequence name="a3" trace="enable" xmlns="http://ws.apache.org/ns/synapse">
    <property expression="json-eval($.payload)" name="array"
        scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <foreach expression="//array/*" sequence="" xmlns:ns="http://org.apache.synapse/xsd"/>

    <respond/>
</sequence>

由于您有JSON输入,因此当它进入ESB时,默认情况下格式更改为xml,因此我看到json输入为[{"id":"346","sys":"8","name":"A bldg"},{"id":"345","sys":"8","name":"bbldg 3"} }] ,ESB会在将根元素转换为XML时添加根元素。

现在,您可以使用XSLT来获取名称,也可以使用最适合您的迭代介体。

不要将有效负载带到属性中,而是直接按如下所示进行迭代,

<foreach expression="//payload">
  <sequence>
    <log>
      <property expression="//name" name="name" scope="default" type="STRING"/>
    </log>
  </sequence>
</foreach>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM