[英]Internal working of GSON
我在當前項目中與GSON合作,我驚訝地看到它的功能,並且想知道它在內部如何工作。 GSON對象如何將任何對象更改為JSON,反之亦然。 我確實閱讀了Google用戶指南,但並未提及其內部工作原理。 誰能解釋。 另外,這個問題可能對某些人沒有吸引力,但是我是android編程的新手,正在探索事物。 雖然我成功使用了gson。 但是我確實想知道它的工作方法。 誰能解釋。 非常感謝。
Gson的內部構造基於三種核心類型:
一種關鍵模式是TypeAdapter遞歸實現。 例如, TypeAdapter<FoodDelivery>
可以委托給TypeAdapter<Address>
和TypeAdapter<MenuItem>
。 使用TypeAdapterFactory
接口可以輕松地為任意類型構建類型適配器。
另一個關鍵模式是Gson
默認包含一些很棒的內置類型適配器。 有用於原語,字符串,集合的類型適配器。 加上一個特殊的類型適配器,該適配器接受任意Java類並將其逐字段轉換為JSON對象。
我建議您不要執行對象GSON
除非需要,否則不要強制GSON
。 IMO,您必須在擁有REST
服務的任何地方使用GSON
,但是GSON
比Java集合( ArrayList
或HashMap
或任何其他...)要慢,如果繼續在GSON
地方使用GSON
,您的應用程序性能將會降低。
第二個原因是,當您執行對象重新創建時,這是在手機內存中完成的,僅舉例來說,我遇到了JSON
( GSON
)對象的問題,該對象在服務中公開,因為它是35-40MB,而對象創建使用了70MB以上的內存。 那里我有OutOfMemoryException
, MemoryExhaustedException
和更多此類問題。
如果您對此限制不感興趣(您沒有大的對象,或者不需要高速),請繼續將對象轉換為GSON。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.