Java GSON的内部工作
在我当前的项目中,我正在与GSON合作,看到它的强大,我感到惊讶,并且想知道它是如何在内部工作的。GSON对象如何将any对象更改为JSON,反之亦然。我确实读过谷歌用户指南,但没有提到他们的内部工作。谁能解释一下。此外,这个问题可能对一些人没有吸引力,但我对安卓编程还不熟悉,正在探索一些东西。虽然我成功地使用了gson。但我确实想知道它的工作方法。谁能解释一下。Java GSON的内部工作,java,android,json,gson,Java,Android,Json,Gson,在我当前的项目中,我正在与GSON合作,看到它的强大,我感到惊讶,并且想知道它是如何在内部工作的。GSON对象如何将any对象更改为JSON,反之亦然。我确实读过谷歌用户指南,但没有提到他们的内部工作。谁能解释一下。此外,这个问题可能对一些人没有吸引力,但我对安卓编程还不熟悉,正在探索一些东西。虽然我成功地使用了gson。但我确实想知道它的工作方法。谁能解释一下。 非常感谢。我建议您不要执行对象的重新创建,也不要强制执行GSON,除非需要。在我看来,你必须在你有REST服务的任何地方使用GSON
非常感谢。我建议您不要执行对象的重新创建,也不要强制执行GSON,除非需要。在我看来,你必须在你有REST服务的任何地方使用
GSON
,但是GSON
比java集合要慢(ArrayList
或HashMap
或任何其他…),如果你继续在任何地方使用GSON
,你会降低应用程序的性能
第二个原因是,当您执行对象重新创建时,这是在手机内存中完成的,举个例子,我遇到了一个通过服务公开的JSON
(GSON
)对象的问题,因为它是35-40MB,并且对象创建使用了超过70MB的RAM。在那里,我遇到了OutOfMemoryException
,内存xhoustedexception
以及更多此类问题
如果您对此限制不感兴趣(您没有大型对象,或者不需要高速),则继续将对象转换为GSON。GSON的内部结构基于三种核心类型:
- 从流中读取JSON文档中的元素
- 将JSON文档中的元素写入流
- 将单个JSON元素转换为单个对象,反之亦然
TypeAdapter
可以委托给TypeAdapter
和TypeAdapter
。TypeAdapterFactory
接口使为任意类型构建类型适配器变得容易
另一个关键模式是,
Gson
默认包含一些内置的很棒的类型适配器。有用于原语、字符串和集合的类型适配器。加上一个特殊类型的适配器,它接受一个任意Java类,并将其逐字段转换为JSON对象。您可以随时获取源代码并亲自查看……好的,我的朋友谢谢您的帮助,我会看一看。对于像我这样想知道同样事情的人来说,这个链接很有帮助。希望有帮助。@SyedRazaMehdi链接现在不可用,404错误没问题,我很高兴能帮上忙。亲爱的朋友,你说在使用restful api时必须使用gson,这是强制性的吗?如果是为什么?我认为这不是一个合理的答案。Gson使用的内存不比手动转换多。它只做你手动做的事情,但自动为你节省时间和打字。