我想在Tomcat(當前使用Jackson)中將Java對象轉換爲JSON。根據RESTful請求中的字段,我只想序列化這些字段。我想支持任何字段子集的請求,所以我想在運行時(動態地)執行它。運行時部分JSON序列化(用於REST風格的查詢)
例如,假設我要支持部分序列化用戶對象:
class User {
private final String id;
private final String firstName;
private final String lastName;
public User(String id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public String getId() { return id; }
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
}
如果我做了一個請求:
GET /users/{id}/?fields=firstName,lastName
我想要得到的東西像{"firstName":"Jack","lastName":"Johnson"}
。
如果我做了一個請求:
GET /users/{id}/?fields=firstName
我想要得到的東西像{"firstName":"Jack"}
。
Jackson的JSON View能夠定義邏輯屬性的子集(通過獲取者或字段訪問的東西)來序列化。但是,它們是靜態定義的(使用註釋),只能動態選擇(每個序列化)。實際上,我想支持請求對象字段的任何子集,所以我可能有成千上萬的JSON視圖(10個字段意味着1,023個子集!)。
什麼JSON庫在運行時支持部分序列化?
[這問題](http://stackoverflow.com/questions/2981359/jackson-suppressing-serializationwrite-of-properties-dynamically)是相關的。 – 2010-08-23 17:34:15