I think this is a limitation of the JSON library.
On Wed, Nov 5, 2014 at 2:05 PM, Udara Liyanage <[email protected]> wrote:
> Hi,
>
> When I execute the GET serviceGroup Stratos endpoint I get the folowing
> output in two different groups. Please note cartridges text in bold. When
> there are only one cartridge, it shows as a String (output1), when there
> are multiple cartridges it is shown as an array (output2).
>
> But when I convert the object to a json text, it shows as arrays even when
> there are single cartridge.
>
> The issue happens when the object is sent in response as below
>
> return Response.ok().entity(serviceGroupDefinition).build();
>
>
> In the code carridges is set as a list.
>
>
> 1. List<String> cartridgesDef = new ArrayList<String>(Arrays.asList(
> cartridges));
> 2. servicegroupDef.setCartridges(cartridgesDef);
>
>
> [1] suggested to set serializeAsArray as true in cxf-servlet.xml.xml, I
> tried doing it too. But same result.
>
> What is the reason for this?
>
>
> output [1]
>
> {
> "serviceGroup": [
> {
> * "cartridges": "tomcat",*
> "dependencies": {
> "startupOrders": "group.group1,cartridge.tomcat",
> "terminationBehaviour": "terminate-dependents"
> },
> "name": "group5",
> "subGroups": "group1"
> }
> ]
> }
>
> output [2]
>
> {
> "serviceGroup": {
> "cartridges": *[*
> * "tomcat",*
> * "php"*
> * ],*
> "dependencies": {
> "startupOrders": "group.group1,cartridge.tomcat",
> "terminationBehaviour": "terminate-dependents"
> },
> "name": "group6",
> "subGroups": "group2"
> }
> }
>
> [1]
> http://stackoverflow.com/questions/18918091/when-a-list-has-only-one-element-cxf-return-the-object-instead-a-js-array
> --
>
> Udara Liyanage
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean. enterprise. middleware
>
> web: http://udaraliyanage.wordpress.com
> phone: +94 71 443 6897
>
--
Best Regards,
Nirmal
Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.
Blog: http://nirmalfdo.blogspot.com/