2010-07-21 6 views
3

J'ai configuré dans une application Spring 3 un ContentNegotiatingViewResolver donc quand j'appelle un contrôleur avec une URL qui ressemble à ** .json, il renvoie un objet json en utilisant la bibliothèque jackson.Personnalisé json au printemps

Si j'appelle cette méthode:

@RequestMapping("/myURL.json") 
public List<MyClass> myMethod(){ 
    List<MyClass> mylist = myService.getList(); 
    return mylist; 
} 

Dans le JSON je reçois je:

{"myClassList":[ 
    { object 1 in json }, 
    { object 2 in json }, 
    { object 3 in json } ... 
] 
} 

mes questions sont les suivantes: ¿est-il possible de configurer le nom myClassList qui est utilisé dans le json? Est-il possible de cette manière un json sans cette variable (quelque chose comme le suivant)?

[ 
    { object 1 in json }, 
    { object 2 in json }, 
    { object 3 in json } ... 
] 

Merci.

Répondre

4

Vous pouvez renvoyer un objet org.springframework.web.servlet.ModelAndView au lieu d'un objet List directement. Sur l'objet modelAndView, vous pouvez définir le nom de la clé. Veuillez vous référer à l'extrait suivant:

@RequestMapping("/myURL.json") 
public ModelAndView myMethod(){ 
    ModelAndView modelAndView = new ModelAndView(); 
    List<MyClass> mylist = myService.getList(); 
    modelAndView.addObject("MyClassName", myList); 
    return modelAndView; 
}