GSON - 将空值反序列化为"null "字符串



恕我直言,我面临着GSON的奇怪行为。让我们以以下示例为例:

{
"Name": "emaborsa",
"Surname": null
}

我的POJO是:

public class User {
@SerializedName("Name")
private String name;
@SerializedName("Surname")
private String surname;
// getter and setter
}

我使用以下代码反序列化它:

Gson g = new Gson();
User user = g.fromJson(json, User.class);

变量name是用"emaborsa"设置的,我期望的变量surname设置为null,但有一个
字符串"null"。这是正确的行为还是我错过了什么?我试图用谷歌搜索它,但很难找到与Stringnull有关的东西......

这对我来说很好用,使用您的代码作为基础:

package gsonexample3;
import com.google.gson.Gson;
import com.google.gson.annotations.*;
public class User {

public static void main(String[] args) {
Gson g = new Gson();
User user = g.fromJson(json, User.class);
}
@SerializedName("Name")
private String name;
@SerializedName("Surname")
private String surname;
private static String json = "{"Name": "emaborsa", "Surname": null}";

}

看起来您必须指定要序列化 null。

Gson gson = new GsonBuilder() .setPrettyPrinting() .serializeNulls()

来自 - https://howtodoinjava.com/gson/serialize-null-values/

相关内容

  • 没有找到相关文章

最新更新