Wie ordne ich einer Eigenschaft einen verschachtelten Wert mithilfe von Jackson-Anmerkungen zu?

Nehmen wir an, ich rufe eine API auf, die mit dem folgenden JSON für ein Produkt antwortet:

{
  "id": 123,
  "name": "The Best Product",
  "brand": {
     "id": 234,
     "name": "ACME Products"
  }
}

Ich kann die Produkt-ID und den Produktnamen mithilfe von Jackson-Anmerkungen gut zuordnen:

public class ProductTest {
    private int productId;
    private String productName, brandName;

    @JsonProperty("id")
    public int getProductId() {
        return productId;
    }

    public void setProductId(int productId) {
        this.productId = productId;
    }

    @JsonProperty("name")
    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }
}

Und dann mit der fromJson-Methode das Produkt erstellen:

  JsonNode apiResponse = api.getResponse();
  Product product = Json.fromJson(apiResponse, Product.class);

Aber jetzt versuche ich herauszufinden, wie ich den Markennamen finden kann, der eine verschachtelte Eigenschaft ist. Ich hatte gehofft, dass so etwas funktionieren würde:

    @JsonProperty("brand.name")
    public String getBrandName() {
        return brandName;
    }

Aber natürlich nicht. Gibt es eine einfache Möglichkeit, mithilfe von Anmerkungen das zu erreichen, was ich möchte?

Die tatsächliche JSON-Antwort, die ich zu analysieren versuche, ist sehr komplex, und ich möchte nicht für jeden Unterknoten eine neue Klasse erstellen müssen, obwohl ich nur ein einziges Feld benötige.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage