7
我想序列化爲特定的字段或類的空值。Gson序列化null爲特定的類或字段
在GSON中,選項serializeNulls()
適用於整個JSON。
實施例:
class MainClass {
public String id;
public String name;
public Test test;
}
class Test {
public String name;
public String value;
}
MainClass mainClass = new MainClass();
mainClass.id = "101"
// mainClass has no name.
Test test = new Test();
test.name = "testName";
test.value = null;
mainClass.test = test;
創建JSON使用GSON:
GsonBuilder builder = new GsonBuilder().serializeNulls();
Gson gson = builder.create();
System.out.println(gson.toJson(mainClass));
電流輸出中:
{
"id": "101",
"name": null,
"test": {
"name": "testName",
"value": null
}
}
希望的輸出:
{
"id": "101",
"test": {
"name": "testName",
"value": null
}
}
如何實現所需的輸出?
首選的解決方案具有以下屬性:
- 做默認不連載空,
- 空序列化與特定註釋字段。
@DatoMumladze我更新了我的問題 – Martin
我在Gson中找不到此功能。這裏有一些有趣的[鏈接](https://mindfirejavaexperts.wordpress.com/2014/03/14/how-to-use-gson-library/)或者你可以使用傑克遜序列化對象到JSON並排除空值使用此批註的特定字段'@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)' –
可能的重複[排除基於GSON中的值的序列化中的某些字段](http://stackoverflow.com/questions/13120354/excluding-certain -fields-從序列化的基於上 - 值在-GSON) – tima