Maison  >  Article  >  Convertir automatiquement POJO en JSON à l'aide de Jackson

Convertir automatiquement POJO en JSON à l'aide de Jackson

王林
王林avant
2024-02-09 12:24:19620parcourir

Dans le développement Web moderne, l'interaction des données front-end et back-end est un lien très important. Dans le développement Java, la conversion d'objets POJO en données au format JSON est une exigence courante. Pour simplifier le processus de développement, Jackson est devenu une solution courante. Jackson est une puissante bibliothèque Java qui permet la conversion automatique des objets POJO au format JSON. Cet article décrira comment utiliser Jackson pour atteindre cet objectif. Jetons un coup d'œil au guide détaillé préparé par l'éditeur PHP Yuzai pour vous !

Contenu de la question

J'aimerais pouvoir faire ceci :

system.out.printf("my obj: %s\n", myobject);

Et laissez-le générer du json. Ma meilleure solution jusqu'à présent est de faire ceci :

@Override
public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
        retVal = mapper.writeValueAsString(this);
    }
    catch (JsonProcessingException ignored) {
    }
    return retVal;
}

Cela fonctionne, mais c'est ennuyeux de devoir le faire sur chacun de mes pojos. Existe-t-il une annotation que je peux utiliser ou un autre moyen d'automatiser cela. J'utilise Jackson et le projet Lombok.

J'ai essayé de l'implémenter uniquement dans la classe de base mais cela ne fonctionnera pas dans les sous-classes. Si je l’implémente tout au long de la chaîne, cela fonctionne.

Solution de contournement

Si vous avez des classes héritées complexes, vous devez supprimer tous @tostring@data (其中包含 @tostring )或子类的 tostring tous les remplacements.

Voici un exemple de toutes les propriétés utilisées dans la méthode tostostostostostostring :

my obj: {"superproperty":"super","name":"abc","number":15,"gender":true}
public abstract class BaseObject {
  @Override
  public String toString() {
    ObjectMapper mapper = new ObjectMapper();
    String retVal = null;
    try {
      retVal = mapper.writeValueAsString(this);
    } catch (JsonProcessingException ignored) {
    }
    return retVal;
  }

  @Setter
  @Getter
  @AllArgsConstructor
  public static class ChildObject extends BaseObject {
    private String superProperty;
  }

  @Setter
  @Getter
  public static class ChildObject1 extends ChildObject {
    private String name;
    private int number;
    private boolean gender;

    public ChildObject1(String superProperty, String name, int number, boolean gender) {
      super(superProperty);
      this.name = name;
      this.number = number;
      this.gender = gender;
    }
  }

  public static void main(String[] args) {
    System.out.printf("My obj: %s\n", new ChildObject1("super","abc", 15, true));
  }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer