将对象转换为字符串时出错

时间:2016-02-12 09:57:27

标签: java

在我的控制器类中,使用ObjectMapper读取JSON数据,并在将数据存储在MyPojo类中之后,现在我想打印POJO对象中的内容。如果我正在curl,它会显示一些十六进制值。那么我该怎么办才能获得你的内容。

这是我的模特课:

system.out.println(pojo);

这是我的主类Controller类

package com.ge.health.model;

import java.util.Date;

public class JSONmodel {
    private String message;
    private String data;
    private String datetime;

    public String getDatetime() {
        return datetime;
    }
    public void setDatetime(String datetime) {
        this.datetime = datetime;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
}

3 个答案:

答案 0 :(得分:2)

你需要用一些东西来覆盖toString(),告诉你你想知道什么:

public String toString() {
        return "message: " + message +
                ",\n data: " + data + 
                ",\n datetime: " + datetime;
}

答案 1 :(得分:0)

在对象实例上调用System.out.println将打印由String实现的toString表示。

如果您不覆盖Object#toString,则您将使用[ClassName@hashCode]表示法打印对象,就像在Object中实现的那样。

在这种情况下,你的问题有点令人困惑,因为你是从JSON反序列化你的pojo实例,但你实际打印的是那个实例,所以只要toString没有被覆盖,你就是将获得"一些十六进制值"如你所说。

答案 2 :(得分:0)

您必须覆盖(生成)toString类中的JSONmodel方法。

像:

@Override
public String toString() {
    return "JSONmodel [message=" + message + ", data=" + data
            + ", datetime=" + datetime + "]";
}