我在当前的项目中使用 GSON,我很惊讶地看到它的强大功能,并且想知道它在内部是如何工作的。 GSON 对象如何将 any 对象更改为 JSON,反之亦然。我确实阅读了谷歌用户指南,但没有提到他们的内部工作。谁能解释一下。此外,这个问题可能不会吸引某些人,但我是 android 编程的新手,正在探索一些东西。虽然我成功地使用了 gson。但我确实想知道它的工作方法。谁能解释一下。 非常感谢。
最佳答案
Gson 的内部构造基于三种核心类型:
- JsonReader从流中读取 JSON 文档中的元素。
- JsonWriter将 JSON 文档中的元素写入流。
- TypeAdapter将单个 JSON 元素转换为单个对象,反之亦然。
一个关键模式是 TypeAdapter 是递归实现的。例如,TypeAdapter<FoodDelivery>
可以委托(delegate)给 TypeAdapter<Address>
和一个 TypeAdapter<MenuItem>
. TypeAdapterFactory
接口(interface)使得为任意类型构建类型适配器变得容易。
另一个关键模式是 Gson
包括一些默认内置的很棒的类型适配器。有用于基元、字符串、集合的类型适配器。加上一个特殊类型的适配器,它接受任意 Java 类并将其逐字段转换为 JSON 对象。
关于java - GSON内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22146188/