首页 > 解决方案 > 创建一个仅包含响应中一些元素的 POJO

问题描述

我正在尝试使用 pojo 从 JSON 响应中读取。响应有很多属性,但我只需要很少,我只使用这些属性创建了 POJO,但是当我尝试读取它时。它无法解析它。

JSON响应:

[
    {
        "attr_1":1,
        "attr_2":2,
        "attr_3":3,
        "attr_4":4,
        "attr_5":5,
    },
    {
        "attr_1":10,
        "attr_2":20,
        "attr_3":30,
        "attr_4":40,
        "attr_5":50,
    }
]

我的 POJO:

@JsonIgnoreProperties(ignoreUnknown = true)
public class MyPOJO {
    @JsonProperty("attr_2")
    private int attr_2;

    @JsonProperty("attr_4")
    private int attr_4;

    public int getattr_2() { return attr_2; }
    public void setattr_2(int attr_2) { this.attr_2 = attr_2;} 

    public int getattr_4() { return attr_4; }
    public void setattr_4(int attr_4) { this.attr_4 = attr_4;} 
}

我只需要 attr_2 和 attr_4,而不需要其他。

这就是我试图阅读回复的方式:

MyPOJO[] arr = response.readEntity(MyPOJO[].class);

但在这一步失败了。我们真的需要在我的 POJO 中拥有所有属性,因为有很多属性,而我需要很少的属性,不想有多余的代码?

标签: javajsonlistparsingpojo

解决方案


我能够解决这个问题。我创建了一个空的构造函数并且它起作用了。以前我有一个只有两个需要的属性的构造函数。


推荐阅读