Heim  >  Artikel  >  Java  >  Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung?

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung?

王林
王林Original
2024-05-06 22:09:02889Durchsuche

Annotationen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Eigenschaften ignorieren @JsonProperty: Namen angeben @JsonGetter: Get-Methode verwenden @JsonSetter: Set-Methode verwenden Deserialisierung: @JsonIgnoreProperties: Eigenschaften ignorieren @JsonProperty: Namen angeben @ JsonCreator: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung?

Verwenden Sie Annotationen, um die JSON-Serialisierung und -Deserialisierung in der Jackson-Bibliothek zu steuern

Einführung

Die Jackson-Bibliothek ist eine beliebte Java-Bibliothek zum Binden von JSON-Daten. Anmerkungen spielen in der Jackson-Bibliothek eine wichtige Rolle, da sie es uns ermöglichen, den JSON-Serialisierungs- und Deserialisierungsprozess zu steuern.

Serialisierungsanmerkung

  • @JsonIgnore: Eine Eigenschaft oder Methode ignorieren, damit sie nicht in der JSON-Ausgabe enthalten ist.
  • @JsonProperty: Geben Sie den Namen der Eigenschaft in der JSON-Ausgabe an.
  • @JsonGetter: Erhalten Sie den zurückgegebenen Wert, wenn die Methode aufgerufen wird, anstatt direkt auf die Eigenschaft zuzugreifen.
  • @JsonSetter: Legen Sie den Wert der Eigenschaft fest, wenn die Setter-Methode aufgerufen wird, anstatt ihn direkt zuzuweisen.

Deserialisierungsanmerkung

  • @JsonIgnoreProperties: Ignorieren Sie die in der JSON-Eingabe angegebenen Eigenschaften.
  • @JsonProperty: Geben Sie den Namen der Eigenschaft in der JSON-Eingabe an und ordnen Sie ihn einer Eigenschaft oder Methode zu.
  • @JsonCreator: Erstellen Sie Objekte mit nicht standardmäßigen Konstruktoren, anstatt Setter-Methoden zu verwenden.
  • @JsonDeserialize: Geben Sie eine benutzerdefinierte Deserialisierungslogik an. Sie können einen benutzerdefinierten Typkonverter oder Handler verwenden.

Praktischer Fall

Das Folgende ist eine Beispielklasse, die zeigt, wie Jackson-Annotationen verwendet werden:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {

    private String name;

    @JsonProperty("age")
    private int yearsOld;

    @JsonGetter("education")
    public String getEducation() {
        return "College";
    }

    @JsonSetter("years_old")
    public void setAge(int yearsOld) {
        this.yearsOld = yearsOld;
    }
}

In diesem Beispiel:

  • @JsonIgnoreProperties(ignoreUnknown = true) JSON-Eingabeeigenschaft ignorieren das gibt es in der Klasse nicht. @JsonIgnoreProperties(ignoreUnknown = true) 忽略JSON输入中类中不存在的属性。
  • @JsonProperty("age") 指定 yearsOld 属性在JSON输出中的名称为 "age"。
  • @JsonGetter("education") 通过获取方法 "getEducation" 返回 "education" 属性的值。
  • @JsonSetter("years_old")
  • @JsonProperty("age") gibt an, dass der Name der Eigenschaft yearsOld in der JSON-Ausgabe „age“ ist.

@JsonGetter("education") Gibt den Wert des Attributs „education“ über die get-Methode „getEducation“ zurück.

🎜@JsonSetter("years_old") Legen Sie den Wert des Attributs „yearsOld“ über die Einstellungsmethode „setAge“ fest. 🎜🎜🎜Serialisierung und Deserialisierung können mit der Jackson-Bibliothek erfolgen über: 🎜
// 序列化
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);

// 反序列化
Person person = mapper.readValue(json, Person.class);

Das obige ist der detaillierte Inhalt vonWie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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