0
votes

Comment changer le format JSON?

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. xxx

bookcontroller.java xxx

bookervice.java xxx

Des cours que j'ai la classe de pojo ...

pour webbookbyisbn (9780226285108) JSON a répondu est xxx

mais je veux faire mon json comme ceci: xxx


1 commentaires

Montrez votre adresse classe


5 Réponses :


0
votes

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. xxx

résultat aura {"Contenu": "BodyContent"}.


0 commentaires

0
votes

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.

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.


0 commentaires

1
votes

Vous pouvez utiliser un objet de transfert de données (DTO) et envoyer uniquement des informations requises en réponse. XXX PRE>

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;
}


0 commentaires

0
votes

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.


0 commentaires

0
votes

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: xxx

// Vous pouvez créer de nombreuses vues différentes ici;

2) Annoter les champs nécessaires de votre entité ; xxx

// PageCount a une vue "Rest" et lorsque le contrôleur a la vue "UI" - pageCount sera manquant

3) annotant la méthode du contrôleur Avec contexte approprié: xxx


0 commentaires