[英]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.