Java:让Json输出显示" null"显式而不是隐藏空字段

时间:2016-03-02 21:50:30

标签: java json

我有以下类,我以Json字符串格式输出类的对象:

public final class MyClass {

    private String field1 = null;
    private String field2 = null;

    @Override
    public final String toString() {
        return toJsonString();
    }

    public final String toJsonString() {
        return (new Gson()).toJson(this);
    }

    :
    :

    public static void main(String[] args) {

        MyClass a = new MyClass();
        a.field1 = "Hello";

        System.out.println(a);
    }

}

以上代码,主程序输出如下:

{"field1":"Hello"}

是否可以输出:

{"field1":"Hello", "field2":null}

谢谢!

1 个答案:

答案 0 :(得分:1)

Gson的默认配置会忽略空值,但您可以使用GsonBuilder来更改它:

Gson gson = new GsonBuilder().serializeNulls().create();
return gson.toString(this);

user guide描述了这一点,the javadocs描述了GsonBuilder为您提供的其他选项。