Je veux changer de format d'affichage de JSON.
J'ai essayé d'imprimer un objet de l'élément entier et il est imprimant tous les attributs (a l'air normal). J'ai essayé de changer de contrôleur et de service pour revenir à la chaîne et j'ai essayé de manipuler la chaîne, mais ce n'est pas une bonne approche du problème que je pense. Doit être quelque chose de mieux. P> bookcontroller.java p> bookervice.java p> Des cours que j'ai la classe de pojo ... p> pour mais je veux faire mon json comme ceci: p> webbookbyisbn (9780226285108) code>
JSON a répondu est p>
5 Réponses :
Créer une interface avec getters de champs obligatoires et lancer votre objet d'origine à une nouvelle interface. Lorsque vous serialisez cet objet, il produira le résultat requis.
E. g. résultat aura {"Contenu": "BodyContent"}. P> P>
Créer un nouveau pojo pour votre réponse attendue et dans votre classe de livrests (ne pas renvoyer directement l'article) Définissez la propriété et le retour. p>
Alternativement, créez un nouvel objet d'élément et définissez uniquement la propriété requise et revenir, en supposant que vous utilisiez Jackson API pour des fonctionnalités telles que @Jsoninclude (include.non_null) et @jsonpropertyorder. p>
Vous pouvez utiliser un objet de transfert de données (DTO) et envoyer uniquement des informations requises en réponse. Dans ce cas, vous pouvez écrire un DTO comme P> public Item findBookByISBN(String isbn) {
for (Item item : listOfItems) {
if (item.getVolumeInfo().getIndustryIdentifiers().get(0).getIdentifier().equals(isbn)) {
NameYouWant na = new NameYouWant();
na.setTitle(item.getTitle());
na.setPrintType(item.getPrintType());
na.setPageCount(item.getPageCount());
na.SetAuthors(item.getAuthors());
na.SetCategories(item.getCategories());
return na;
}
}
return null;
}
Vous pouvez utiliser Marshalling votre classe d'articles vers JSON dans certains formats. Cela vous donnera précisément ce que vous voulez. Vous trouverez des moyens de le faire dans le démarrage de printemps sur Google. P>
Si vous ne voulez pas créer de classe DTO supplémentaire ou avoir de nombreuses vues différentes, vous pouvez utiliser Jackson @jsonview Annotation sur les champs de classe. Exemple:
1) Créer une classe: P> // Vous pouvez créer de nombreuses vues différentes ici; p> 2) Annoter les champs nécessaires de votre entité ; p> // PageCount a une vue "Rest" et lorsque le contrôleur a la vue "UI" - pageCount sera manquant p> 3) annotant la méthode du contrôleur Avec contexte approprié: p>
Montrez votre adresse
code> classe