2012-03-21 8 views
2

Я работаю над проектом, в котором мне нужно вернуть список объектов в формате json. Я использую Spring-mvc framework с библиотекой jackson, чтобы выполнить сериализацию.Сериализовать список объектов для Json, с Jackson & Spring-MVC

Я хочу структуру json, содержащую непосредственно объекты, а не «имя: массив объектов».

Это мой упрощенный код:

@RequestMapping(method = RequestMethod.GET, value = "/clients") 
public List getClients(
     @RequestParam(value = "estat", required = false) String estat 
     throws Exception { 

    List<Clients> l = s.mdClients(estat); 
    return l; 
} 

Это «возвращение л», что вы видите, идет непосредственно к Джексону, и джексон преобразует «L» в структуру как:

{ 
    "ClientsList": [ 
    { 
     "x": "2", 
     "y": "5" 
    } 
]} 

Проблема это корень «ClientsList». Я хочу получить этот выход без корня:

{ 
    [ 
    { 
     "x": "2", 
     "y": "5" 
    } 
]} 

Итак, любой может помочь? заранее спасибо!

ответ

2

Я нашел решение, используя @ResponseBody в мой контроллер, как @vacuum прокомментирован (спасибо!):

@RequestMapping(method = RequestMethod.GET, value = "/clients") 
public @ResponseBody List getClients(
    @RequestParam(value = "estat", required = false) String estat 
    throws Exception { 

List<Clients> l = s.mdClients(estat); 
return l; 
} 

Я также необходимо изменить мой метод преобразования-вывода, используя

<mvc:annotation-driven /> 

в моем сервлет-контексте .xml, чтобы использовать библиотеку Джексона для преобразования json моего списка.

Выход в настоящее время:

[ 
    { 
    "x": "2", 
    "y": "5" 
    } 
] 
5

Попробуйте добавить @ResponseBody в объявлении метода:

public @ResponseBody List getClients() 
Смежные вопросы