我從端點獲取JSON,並將其轉換爲使用GSON的POJO。我需要操縱一些數據並將其轉換回JSON,但名稱不同。如果我使用了@SerializedName,那麼當名稱從JSON轉換爲POJO時名稱會改變,但當我轉換回JSON時,名稱會再次更改。將JSON轉換爲POJO並返回時更改名稱
我該如何解決這個問題?
我從端點獲取JSON,並將其轉換爲使用GSON的POJO。我需要操縱一些數據並將其轉換回JSON,但名稱不同。如果我使用了@SerializedName,那麼當名稱從JSON轉換爲POJO時名稱會改變,但當我轉換回JSON時,名稱會再次更改。將JSON轉換爲POJO並返回時更改名稱
我該如何解決這個問題?
如果你願意從GSON切換到傑克遜,那麼你就可以看到解決this other Stack Overflow question
編輯
假設你被卡住GSON,它不會出現使用成爲可能相同的類用不同的鍵讀取和寫入相同的字段。當其他框架通過從getter和setter進行序列化和反序列化並在這些方法上尋找自定義裝飾器來實現這一點時,他們決定現在只使用字段,according to the GSON design document(請參閱使用字段vs獲取器來指示Json元素)。
EDIT2
作爲一種解決辦法,我可能會建議創建一個可從原始對象實例被實例化,但具有的字段名稱,你想爲串行化回JSON另一個POJO。這將會有點破綻,但是你可以將它封裝在主類的ToJSON()
方法中,以便在序列化時保持乾淨。
你承諾使用GSON,還是你願意考慮其他庫的序列化/反序列化? – RemedialBear
一種致力於使用GSON的項目,因爲它是我無法做出決定的項目。 – user7434041