[英]why is this null value not being serialized?
因此,我有一個要序列化為gson的對象, end
值為null。 但是,不是在json對象中顯示為null
,而是在json對象中缺少整個end
鍵值對。
這是該對象的POJO。
public static class History {
@NonNull
public final String areaId;
@NonNull
public final String userId;
public final long start;
@Nullable
public final Long end;
public History(@NonNull String areaId, @NonNull String userId, long start, @Nullable Long end) {
this.areaId = areaId;
this.userId = userId;
this.start = start;
this.end = end;
}
}
這是gson Builder
GsonBuilder()
.serializeNulls()
.registerTypeAdapter(Date.class, new DateFormatter())
.setFieldNamingStrategy(fieldNamingStrategy)
.create();
這就是json的實際外觀
areaUserHistories": {
"aff824c6-df4f-49b4-8dea-6c204cb7bb16": {
"areaId": "ca5f5e6f-77eb-4859-a2ad-c3b249e53493",
"start": 1524178713,
"userId": "911705136"
}
}
這就是它的樣子
areaUserHistories": {
"aff824c6-df4f-49b4-8dea-6c204cb7bb16": {
"areaId": "ca5f5e6f-77eb-4859-a2ad-c3b249e53493",
"start": 1524178713,
"end": null
"userId": "911705136"
}
},
EIDT 1
因此,我進行了實驗,並將這一行代碼添加到GsonBuilder中.setLongSerializationPolicy(LongSerializationPolicy.STRING)
以便Gson Builder現在將Long值轉換為String。 這導致end=null
值被正確添加。 不幸的是,該值必須為Long。
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.serializeNulls();
Gson gson = gsonBuilder.create();
String jsonString = gson.toJson(object);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.