Heim  >  Artikel  >  POJO mit Jackson automatisch in JSON konvertieren

POJO mit Jackson automatisch in JSON konvertieren

王林
王林nach vorne
2024-02-09 12:24:19620Durchsuche

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

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen