2013-04-07 36 views
1

我使用JSON作爲保存格式。如何在使用GSON反序列化時記錄丟棄的字段?

如果我更改我的對象的字段名稱,GSON將在加載舊版本時默默丟棄原始字段,因爲它們不再匹配新名稱。

我希望能夠得到一些通知,如果我通過重構意外執行此操作,即「警告:在反序列化期間在ObjectType中找不到變量名稱」。 有@Version註釋,但它不完全是我正在尋找。

有沒有人寫過一個自定義的反序列化器或自定義類型轉換器,當JSON中的字段不存在時會拋出錯誤?有沒有另外一個序列化庫來做到這一點?

編輯:我仍然會對GSON解串器感興趣,如果任何人有這樣的話。

回答

-1

Jackson可用於對意外的JSON元素進行失敗。 Jackson還可以配置爲收集(並記錄)所有未綁定的JSON元素,如http://www.cowtowncoder.com/blog/archives/2010/09/entry_414.html(搜索「任何setter」)中所述。

如果您已經熟悉Gson,我記錄瞭如何使用Jackson在Gson用戶指南http://programmerbruce.blogspot.com/2011/07/gson-v-jackson-part-6.html中做同樣的事情。

+0

謝謝,這是我需要的。我將其標記爲解決方案,因爲它可能比使用自定義解串器更好。 – bobsgame 2013-04-07 04:53:30

+0

這是否真的回答標題中提出的問題? _「如何在使用GSON反序列化時記錄丟棄的字段?」_ – 2014-01-09 01:51:16