0

我被困住了,需要一些建议来评估 WSO2 ESB。

我在 JSON 中有一个请求有效负载,如下所示。

{ 
  names: 
       [ 
         {
            “name”:”niraj”
         }, 
         {
            “name=”atul”
         } 
      ]
}

我需要一一迭代 $body/names/name 并创建一个 JSON 数组,如下所示。

{ 
  resp: 
      [ 
        { 
          “name”:”niraj”, 
          “city”:”pune”
        }, 
        {
          “name”:”atul”, 
          “city”:”mumbai”
        } 
     ]
 }

我面临的问题是我无法在 WSO2 ESB 的 foreach 中介内创建 JsonArray。我看不到在 WSO2 ESB 中定义/使用 JsonArray 的任何选项。

如果您有任何建议,请提出建议。

我已经编写了下面的代码。

<foreach expression="$body/Children/Children" id="f4">
<sequence>
    <filter xpath="$body/Children/_JsonReader_PS_type and $body/Children/_JsonReader_PS_type='Entity' and $body/Children/PrimaryKey='true' and $body/Children/Items/FirstName/Value ">
         <then>
            <log level="custom">
            <property name="logger" value="I am inside 8 Filter"/>
            <property expression="$body/Children/Items/FirstName/Value" name="firstName"/>
            <property expression="$body/Children/Items/LastName/Value" name="lastName"/>
            <property expression="$body/Children/Items/PersonNumber/Value" name="ssn"/>
            </log>

            <property expression="$body/Children/Items/FirstName/Value" name="firstName" scope="default" type="STRING"/>
            <property expression="$body/Children/Items/LastName/Value" name="lastName" scope="default" type="STRING"/>
            <property expression="$body/Children/Items/PersonNumber/Value" name="ssn" scope="default" type="STRING"/>

            <payloadFactory media-type="json">
            <format>{
                        "First Name" : "$1",
                        "Last Name" : "$2",
                        "SSN" : "$3"
            }</format>

            <args>
                <arg evaluator="xml" expression="get-property('firstName')"/>
                <arg evaluator="xml" expression="get-property('lastName')"/>
                <arg evaluator="xml" expression="get-property('ssn')"/>
            </args>
            </payloadFactory>

            <log>
            <property expression="json-eval($.)" name="JSON-Payload"/>
            </log>
         </then>
         <else/>
    </filter>
</sequence>
</foreach>

谢谢!

4

0 回答 0