Heim > Java > Hauptteil

POJO mit Jackson automatisch in JSON konvertieren

王林
Freigeben: 2024-02-09 12:24:19
nach vorne
674 Leute haben es durchsucht

In der modernen Webentwicklung ist die Interaktion zwischen Front-End- und Back-End-Daten eine sehr wichtige Verbindung. In der Java-Entwicklung ist die Konvertierung von POJO-Objekten in Daten im JSON-Format eine häufige Anforderung. Um den Entwicklungsprozess zu vereinfachen, hat sich Jackson zu einer gängigen Lösung entwickelt. Jackson ist eine leistungsstarke Java-Bibliothek, die die automatische Konvertierung von POJO-Objekten in das JSON-Format ermöglicht. In diesem Artikel wird beschrieben, wie Sie Jackson nutzen können, um dieses Ziel zu erreichen. Werfen wir einen Blick auf die ausführliche Anleitung, die der PHP-Editor Yuzai für Sie erstellt hat!

Frageninhalt

Ich wünschte, ich könnte das tun:

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

Und lassen Sie es JSON generieren. Meine bisher beste Lösung ist Folgendes:

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

Das funktioniert zwar, aber es ist nervig, es bei jedem einzelnen meiner Pojos tun zu müssen. Gibt es eine Anmerkung, die ich verwenden kann, oder eine andere Möglichkeit, dies zu automatisieren? Ich verwende Jackson und Project Lombok.

Ich habe versucht, es nur in der Basisklasse zu implementieren, aber es funktioniert nicht in Unterklassen. Wenn ich es in der gesamten Kette umsetze, funktioniert es.

Problemumgehung

Wenn Sie komplexe geerbte Klassen haben, sollten Sie alle @tostring@data (其中包含 @tostring )或子类的 tostring alle Überschreibungen entfernen.

Hier ist ein Beispiel aller in der tostostostostostostring-Methode verwendeten Eigenschaften:

my obj: {"superproperty":"super","name":"abc","number":15,"gender":true}
Nach dem Login kopieren
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));
  }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPOJO mit Jackson automatisch in JSON konvertieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage