我在當前的項目中與GSON合作,我很驚訝地看到它的力量,並想知道它是如何在內部工作的。 GSON對象如何將任何對象更改爲JSON,反之亦然。我沒有閱讀谷歌用戶指南,但內部工作沒有提到他們。誰能解釋一下。此外這個問題可能不會吸引一些人,但我是新來的android編程和探索的東西。雖然我成功地使用了gson。但我很想知道它的工作方法。任何人都可以解釋。 非常感謝。GSON的內部工作
回答
我建議您不要執行對象的娛樂操作,並且不要強制GSON
,除非需要它。國際海事組織,你必須在任何地方使用GSON
你有REST
服務,但GSON
比java收藏(ArrayList
或HashMap
或其他...)更慢,如果你繼續在任何地方繼續使用GSON
,你將降低應用性能。
第二個原因是,當你執行對象的娛樂,這是在手機內存中完成,而只是舉例,我曾與JSON
(GSON
)對象一個問題,暴露了服務,因爲它是35-40MB和對象創建使用超過70MB的RAM。在那裏我有OutOfMemoryException
,MemoryExhaustedException
以及更多這類問題。
如果此限制對您不感興趣(您沒有大對象,或者不需要高速),則繼續將對象轉換爲GSON。
感謝buddy它真的有幫助 –
沒問題,我很高興幫助。 –
親愛的朋友,你說過使用restful api時必須使用gson是強制性的嗎?如果這是爲什麼? –
GSON的內部都建立在三個核心類型:
- JsonReader讀取流的JSON文件中的元素。
- JsonWriter將JSON文檔中的元素寫入流中。
- TypeAdapter將單個JSON元素轉換爲單個對象,反之亦然。
一個關鍵模式是TypeAdapter遞歸實現。例如,TypeAdapter<FoodDelivery>
可能會委託給TypeAdapter<Address>
和TypeAdapter<MenuItem>
。 TypeAdapterFactory
接口可以輕鬆構建適用於任意類型的類型適配器。
另一個關鍵模式是Gson
包括默認內置的一些很棒的類型適配器。有原型,字符串,集合的類型適配器。另外還有一個特殊類型的適配器,它接受一個任意的Java類並逐字段地將其轉換爲JSON對象。
- 1. 內部工作
- 2. Deserialzing工作在GSON-2.1,但不GSON-2.4.4
- 3. GSON反序列化內部部分
- 4. Jenkins內部工作
- 5. 的Calendar.MONTH和內部工作
- 6. Fabric Composer的內部工作
- 7. Spark的內部工作
- 8. FileInputStream的內部工作
- 9. 內部鎖的工作
- 10. Enum.GetValues()的內部工作()
- 11. HTML的內部工作?
- 12. JSF 1.2的內部工作
- 13. Integer類的內部工作
- 14. 表內表不工作的內部表
- 15. return語句是從內部工作到外部工作的嗎?
- 16. GSON只有專心內部對象
- 17. 內部加入不工作
- 18. jquery插件內部工作
- 19. scrollTop內部div不工作
- 20. 承諾內部工作
- 21. PHP ArrayObject內部工作
- 22. MYSQL插入內部工作
- 23. SQL SERVER:內部工作
- 24. 內部與intent.getextras()工作
- 25. 萬家樂內部工作
- 26. $ http.delete不工作內部foreach
- 27. MVC內部工作PHP
- 28. Gson + Retrofit,它是如何工作的?
- 29. 外部JavaScript不工作,而內部不
- 30. 創建新工作表時從模塊內部更新工作簿的內部工作表列表
你可以隨時獲取源代碼並親自看看... –
好吧,我的朋友感謝您的幫助,我會給它一個看看。 –
http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html對於像我這樣的人,他們想知道這個鏈接是非常有用的,只是發現它。希望能幫助到你。 –