恕我直言,我面临着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"。这是正确的行为还是我错过了什么?我试图用谷歌搜索它,但很难找到与String
和null
有关的东西......
这对我来说很好用,使用您的代码作为基础:
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/