[英]Object serialization to json, certain fields only
我有一個很大的嵌套對象。 我想在JSON字符串中序列化此對象,但是我只需要包含某些字段。 這里的問題是字段可能會非常頻繁地更改,我想以一種可以幫助我輕松包含或排除字段進行序列化的方式來構建它。
我知道我可以編寫很多代碼來提取某些字段並“手動”構建JSON。 但是我想知道是否還有其他優雅的方法可以實現類似的結果,但需要指定必填字段列表?
例如,具有以下對象結構,我想在響應中僅包含id
和name
:
class Building {
private List<Flat> flats;
}
class Flat {
private Integer id;
private Person owner;
}
class Person {
private String name;
private String surname;
}
JSON:
{
"flats" : [
{
"flat":
{
"id" : "1",
"person" : {
"name" : "John"
}
}
}
]
}
使用com.fasterxml.jackson.annotation.JsonIgnore
是實現此目的的另一種方法。
import com.fasterxml.jackson.annotation.JsonIgnore;
class Person {
private String name;
@JsonIgnore
private String surname;
}
當解析器將bean轉換為json時,它將忽略surname
。 類似的注釋將在其他json處理庫中提供。
如果使用Gson,請研究如何使用ExclusionStrategy和JsonSerializer。
使用它們是控制序列化的一種更靈活的方法,因為它允許確定每個序列化序列化的內容。
如果需要更改要序列化的內容,則以后使用注釋需要從字段中添加/刪除這些注釋。
對於您的示例,后者可能更合適。
這個問題可能是一個很好的起點serialize-java-object-with-gson
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.