Comment retourner un ensemble d'objets avec Spring Boot?
Je n'ai une leçon sur Spring Boot
et il fonctionne parfaitement. Mais que faire si je souhaite retourner un ensemble d'objets ? J'ai essayé de faire cette mais ça ne fonctionne pas. Comment puis-je le faire correctement ?
Avec un objet (il fonctionne):
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
Avec de nombreux objets (il ne fonctionne pas):
@RequestMapping(value = "/greeting", method = RequestMethod.GET, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<Greeting> greeting() {
Greeting greeting1 = new Greeting(1, "One");
Greeting greeting2 = new Greeting(2, "Two");
List<Greeting> list = new ArrayList<>();
list.add(greeting1);
list.add(greeting2);
return list;
}
OriginalL'auteur faoxis | 2017-01-18
Vous devez vous connecter pour publier un commentaire.
Si vous comparez votre méthode originale pour votre nouveau (avec un
List
), vous remarquerez quelques différences.Tout d'abord, au sein de la
@RequestMapping
annotation vous êtes maintenant en utilisant les propriétésconsumes
etproduces
.produces
n'est pas un problème ici, parce que vous êtes la production d'une réponse qui devrait être JSON. Cependant vous n'êtes pas consommer quelque chose, alors vous devez laisser à l'écart laconsumes
.Au passage, vous remarquerez que vous avez utilisé la
@ResponseBody
annotation. Mettre ici ne cause pas des erreurs, mais il n'est pas nécessaire, car si vous avez suivi le Printemps tutoriel correctement, vous devriez avoir annoté votre contrôleur avec@RestController
et en faisant cela, vous dire déjà le Printemps qu'il utilise le corps de la réponse.OriginalL'auteur g00glen00b
Disons que nous avons la liste de CarDetails Pojo et nous voulons retourner
JSON sera de sortie:-
OriginalL'auteur vipul gulhane
Voici l'extrait de code que j'ai fait pour cela. Supprimer le "consommer" de votre @RequestMapping annotation, car vous ne l'utilisez pas dans votre méthode.
OriginalL'auteur mrprintedwall