Hi Amal,

Thanks for the suggestion. this would more suite for the requirement I
have.

Regards,
Sameera.

On Fri, Jan 5, 2018 at 2:34 PM, Amal Gunatilake <am...@wso2.com> wrote:

> Hi Sameera,
>
> You can use the XSLT mediator as well.
>
>
> {
>    "phoneNumbers":[
>       {
>          "number":"123",
>          "person":"tt"
>       },
>       {
>          "number":"555",
>          "person":"aaa"
>       }
>    ]
> }
>
>
> convert the json payload into xml using the messageType property.
> *<property name="messageType" value="application/xml" scope="axis2"/>*
>
> You will get a message something like below.
>
> <jsonObject>
>    <phoneNumbers>
>       <element>
>          <number>123</number>
>          <person>tt</person>
>       </element>
>       <element>
>          <number>555</number>
>          <person>aaa</person>
>       </element>
>    </phoneNumbers>
> </jsonObject>
>
>
> Now you can use the xslt mediator with a script similar to below.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> <xsl:template match="/">
> *<web:Payload>*
> *    <web:PhoneNumbers>*
>     <xsl:for-each select="//element">
>     *<web:PhoneNumber>*
>       *<web:Number>*<xsl:value-of select="number"/>*</web:Number>*
>       *<web:Person>*<xsl:value-of select="person"/>*</web:Person>*
>     *</web:PhoneNumber>*
>     </xsl:for-each>
>     *</web:PhoneNumbers>*
> *</web:Payload>*
> </xsl:template>
> </xsl:stylesheet>
>
> Result
>
> <web:payload><web:phonenumbers><web:phonenumber>
> <web:number>123</web:number><web:person>tt</web:person></
> web:phonenumber><web:phonenumber><web:number>555</
> web:number><web:person>aaa</web:person></web:phonenumber><
> /web:phonenumbers></web:payload>
>
>
> Best regards,
> Amal.
>
> On Fri, Jan 5, 2018 at 2:21 PM, Vinod Kavinda <vi...@wso2.com> wrote:
>
>> Hi Sameera,
>> Did you try the script mediator? Please refer SO question[1], script
>> mediator has been successfully used here for a similar case.
>>
>> [1] - https://stackoverflow.com/questions/44817012/how-to-transf
>> orm-json-array-response-to-xml-array-in-esb-wso2-using-script-media
>>
>> Regards,
>> Vinod
>>
>> On Fri, Jan 5, 2018 at 1:51 PM, Sameera Gunarathne <samee...@wso2.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I'm generating a soap message from a JSON payload and there I would get
>>> custom object arrays for the payload. An example message format would be
>>> like below.
>>>
>>> {
>>>    "phoneNumbers":[
>>>       {
>>>          "number":"",
>>>          "person":""
>>>       }
>>>    ]
>>> }
>>>
>>> respective soap message should be like this.
>>>
>>> <web:Payload>
>>>     <web:PhoneNumbers>
>>> <web:PhoneNumber>
>>>     <web:Number></web:Number>
>>>     <web:Person></web:Person>
>>> <web:PhoneNumber/>
>>>     </web:PhoneNumbers>
>>> </web:Payload>
>>>
>>> I have used a payload factory mediator for the simple object
>>> types(without arrays) and I use property mediator to access the object
>>> fields so that I can inject them using an argument to the message template
>>> used for payload factory. But when getting an array of as mentioned payload
>>> the argument should be populated with following elements for the size of
>>> the array.
>>>
>>> * <web:PhoneNumber>*
>>> *     <web:Number></web:Number>*
>>> *     <web:Person></web:Person>*
>>> * <web:PhoneNumber/>*
>>>
>>> In this case, is there a way I can use payload factory with property
>>> mediator? Or Is there a recommended mediators I can use for this scenario?
>>>
>>> Thanks and Regards,
>>> Sameera,
>>> --
>>> Sameera Gunarathne
>>> Software Engineer, WSO2 Inc. http://wso2.com
>>> <http://l.facebook.com/l.php?u=http%3A%2F%2Fwso2.com&h=gAQEswASa>
>>> Email: samee...@wso2.com
>>> Mobile: +94714155561
>>>
>>
>>
>>
>> --
>> Vinod Kavinda
>> Senior Software Engineer
>> *WSO2 Inc. - lean . enterprise . middleware <http://www.wso2.com>.*
>> Mobile : +94 (0) 712 415544
>> Blog : http://soatechflicks.blogspot.com/
>> [image: http://wso2.com/signature]
>> <http://wso2.com/signature>
>>
>>
>
>
> --
> *Amal Gunatilake*
> WSO2 Inc.; http://wso2.com
> Lean . Enterprise . Middleware
>
> mobile: (+94) 773561195 <+94%2077%20356%201195>
> blog: amalg-blogs.blogspot.com; twitter: @daag123
> linkedIn: https://www.linkedin.com/in/amalgunatilake
>



-- 
Sameera Gunarathne
Software Engineer, WSO2 Inc. http://wso2.com
<http://l.facebook.com/l.php?u=http%3A%2F%2Fwso2.com&h=gAQEswASa>
Email: samee...@wso2.com
Mobile: +94714155561
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to