Angenommen, 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 Namen 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;
}
}
Verwenden Sie dann die fromJson-Methode, um das Produkt zu erstellen:
JsonNode apiResponse = api.getResponse();
Product product = Json.fromJson(apiResponse, Product.class);
Aber jetzt versuche ich herauszufinden, wie man den Markennamen ergreift, 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 eigentliche JSON-Antwort, die ich zu analysieren versuche, ist sehr komplex und ich möchte nicht für jeden Unterknoten eine ganz neue Klasse erstellen müssen, obwohl ich nur ein einziges Feld benötige.