Gson を使用して JSON を POJO にマップしようとしていますが、POJO には JSON の一部ではないカスタム フィールドが含まれています。更新中のフィールドの名前をリストに追加するために、他のフィールドのセッターが呼び出されると、フィールドが更新されます。
POJO クラスは次のようになります。
public class myPojo {
private List<String> dirtyFields;
private String id;
private String subject;
private String title;
public myPojo() {
dirtyFields = new ArrayList<String>();
}
public getId() {
return id;
}
public setId(String id) {
this.id = id;
}
public getSubject() {
return subject;
}
public setSubject(String subject) {
this.subject = subject;
dirtyFields.add("subject");
}
// more setter/getters
}
ivardirtyFields
は逆シリアル化されたフィールドではありませんが、更新中のフィールドを追跡するために使用されます。ただし、マッピング後、リストは空のリストになるようです。ジャクソンの場合はそうではありませんでした。これは、予想される Gson の動作によるものですか?