使用jackson将pojo(对象列表)转换为java中的json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jackson将pojo(对象列表)转换为java中的json相关的知识,希望对你有一定的参考价值。

我在将简单的JSON转换为POJO对象时遇到了问题。

这是我的代码:

public class Products {

private int id;
    private String type;
    private String description;
    private Double price;
    private String brand;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Double getPrice() {
        return price;
    }
    public void setPrice(Double price) {
        this.price = price;
    }
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
}

我得到以下输出:

com.ObjectToJson.Product@b97c004
Object to Json --> {
"products" : null
}

我无法使用JACKSON API将JSON转换为Java对象。

拜托,任何人都可以帮我解决这个问题吗?

答案

您尝试从对象创建JSON的代码在哪里?没有它,就很难说要解决什么问题。问题也可能来自您的Products类没有构造函数的事实。所以当你制造一个物体时什么都没有。初始化变量后应添加构造函数,如:

    public Products(){

    }

然后尝试从对象中创建JSON,这应该是这样的:

    Products p = new Products();
    ObjectMapper mapper = new ObjectMapper();
    String JSON = mapper.writeValueAsString(p); // to get json string 


    mapper.readValue(JSON, Products.class); // json string to obj

确保使用setter或getter设置Product的对象变量,或者通过向构造函数添加参数将它们初始化为值:

    public Products(String type, String description, Double price, 
    String brand){
        this.type = type;
        this.description = description; //etc etc...
    }

以上是关于使用jackson将pojo(对象列表)转换为java中的json的主要内容,如果未能解决你的问题,请参考以下文章

将 Map<String, String> 转换为 POJO

jackson 进行json与java对象转换 之四

将带有列表的休眠 POJO 转换为可序列化的 rpc 返回对象

将火花行对象转换为 java pojo

将带有列表的hibernate POJO转换为可序列化的rpc返回对象

如何仅使用 Jackson 将 XML 转换为 JSON?