我有一个 JSON 有效负载,如下所示:
{
"id": 32,
"name": "[Sample] Tomorrow is today, Red printed scarf",
"primary_image": {
"id": 247,
"zoom_url": "www.site.com/in_123__14581.1393831046.1280.1280.jpg",
"thumbnail_url": "www.site.com/in_123__14581.1393831046.220.290.jpg",
"standard_url": "www.site.com/in_123__14581.1393831046.386.513.jpg",
"tiny_url": "www.site.com/in_123__14581.1393831046.44.58.jpg"
}
}
Run Code Online (Sandbox Code Playgroud)
我可以解开特定字段并丢弃所有其他字段吗?换句话说,我可以将其直接绑定到 POJO,如下所示:
public class Product {
private Integer id;
private String name;
private String standardUrl;
}
Run Code Online (Sandbox Code Playgroud)
有很多方法。您需要反序列化、序列化还是两者都需要?
反序列化的一种方法是使用将图像作为树节点的创建者方法:
public static class Product {
private Integer id;
private String name;
private String standardUrl;
public Product(@JsonProperty("id") Integer id,
@JsonProperty("name") String name,
@JsonProperty("primary_image") JsonNode primaryImage) {
this.id = id;
this.name = name;
this.standardUrl = primaryImage.path("standard_url").asText();
}
}
Run Code Online (Sandbox Code Playgroud)
创建者不必是构造函数,您可以有一个仅用于 Jackson 反序列化的静态方法。
不过,您必须定义一个自定义序列化器来重新序列化它(例如,一个 StdDelegatingSerializer 和一个转换器,用于将字符串包装回 ObjectNode)
| 归档时间: |
|
| 查看次数: |
4295 次 |
| 最近记录: |