WSO2 JSON数组处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSO2 JSON数组处理相关的知识,希望对你有一定的参考价值。

我有一个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>

以上是关于WSO2 JSON数组处理的主要内容,如果未能解决你的问题,请参考以下文章

WSO2:将CSV消息转换为json wso2 esb。在prolog中出现意外字符'“'(代码34)失败;预期'

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

wso2转换,xml到json转换

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

Ionic App之国际化 json数组的处理

wso2 无法保存 JSON 有效负载。找到无效的输入流