2016-03-23 3 views
0

я в настоящее время есть веб-сервиса, который возвращает этот JSON:Java-Джерси JSON вебсервис собственно массив вернуть

[ 
    { 
     "id":1, 
     "description":"RGB LED module" 
    }, 
    { 
     "id":4, 
     "description":"Motion Sensor module" 
    }, 
    { 
     "id":3, 
     "description":"Camera module" 
    }, 
    { 
     "id":2, 
     "description":"Display module" 
    } 
] 

Однако, мне нужно, чтобы это было:

{ 
    "modules":[ 
     { 
     "id":1, 
     "description":"RGB LED module" 
     }, 
     { 
     "id":4, 
     "description":"Motion Sensor module" 
     }, 
     { 
     "id":3, 
     "description":"Camera module" 
     }, 
     { 
     "id":2, 
     "description":"Display module" 
     } 
    ] 
} 

Как я могу добиться этого?

Это мой текущий код Java:

@GET 
    @Path("availableModules") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getModules() 
    {   
    return Response.ok(createAvailableModuleList()) //200 
     .header("Access-Control-Allow-Origin","*") 
     .build(); 
    } 

createAvailableModuleList возвращает высмеивал ArrayList на данный момент, и выглядит следующим образом:

public List<Module> createAvailableModuleList() 
    { 
    Module ledModule=new Module(1, "RGB LED module"); 
    Module motionSensorModule=new Module(4, "Motion Sensor module"); 
    Module cameraModule=new Module(3, "Camera module"); 
    Module displayModule=new Module(2, "Display module"); 

    List<Module> modules = new ArrayList<Module>(); 
    modules.add(ledModule); 
    modules.add(motionSensorModule); 
    modules.add(cameraModule); 
    modules.add(displayModule); 
    return modules; 
    } 
+1

Один из способов, которым я могу думать, - создать класс, в который вы назначаете список модулей. – starcorn

+0

Как это будет выглядеть? Класс с только списком модулей? И вернуть класс в ответ? –

+0

Да, именно так вы описали его. – starcorn

ответ

2

Wrap список в карте с одним входом

LinkedHashMap<String,Object> map = new LinkedHashMap<>(); 
map.put("modules", createAvailableModuleList()); 
return Response.ok(map)... 
+0

это даже лучшая идея – starcorn

+0

Работает как очарование! Спасибо друг! –