一直在使用 google 的 Gson ,一般都是简单用法。今天有空找了找文章,研究了一下深入的使用。
参考文章如下:
完全理解Gson(1):简单入门:http://www.importnew.com/16630.html
完全理解Gson(2):Gson序列化:http://www.importnew.com/16638.html
完全理解Gson(3):Gson反序列化:http://www.importnew.com/16786.html
其实上面的3篇连续的文章都是翻译于: http://www.javacreed.com/
简单入门:http://www.javacreed.com/simple-gson-example/
Gson序列化:http://www.javacreed.com/gson-serialiser-example/
Gson反序列化:http://www.javacreed.com/gson-deserialiser-example/
Gson 注解的使用:http://www.javacreed.com/gson-annotations-example/
这里的网址上面还有其他关于 Gson 的文章:http://www.javacreed.com/tag/gson/
其他参考资料:
Gson 官网:https://github.com/google/gson
Gson 官网的 UserGuide:https://github.com/google/gson/blob/master/UserGuide.md (里面有各种序列化和反序列化的例子)
-----------------------
操作 List:
Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType();
List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType);
/** * * @return Gson实例 * @author xuepeng * @CreateTime 2017/11/29 10:59:20 * @Description 构建Gson实例 * 将json里面时间字段存储为long类型的时间转换为java的Date类型。 */ private Gson buildGson() { Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { return new Date(json.getAsJsonPrimitive().getAsLong()); } }).create(); return gson; }
相关推荐
Gson深度克隆是一个利用Gson库实现对象深度克隆的工具,主要通过将对象序列化为JSON字符串,再从JSON字符串反序列化为新对象。其核心原理是利用Gson的序列化与反序列化特性,无需手动实现克隆逻辑。 主要特点: ...
**Google的Gson库深度剖析及使用范本** 在当今的软件开发中,JSON(JavaScript Object Notation)已经成为数据交换的主要格式,特别是在Web服务和移动应用之间。JSON因其简洁、易读、易解析的特性而受到广泛欢迎。...
Gson的主要优点是它对Java对象的深度支持,包括复杂的数据结构如自定义类、集合和嵌套对象。使用Gson,你可以通过`Gson().toJson()`方法将Java对象转化为JSON字符串,通过`new Gson().fromJson()`方法将JSON字符串反...
此外,Gson的`JsonParser`类可以用于逐项解析JSON流,而`JsonElement`树模型则允许对JSON进行深度操作。 总之,谷歌Gson 2.8.0版本是一个强大的JSON处理工具,不仅提供了基础的序列化和反序列化功能,还支持丰富的...
与其他Java JSON库(如Jackson, org.json)相比,Gson的优势在于其简单直观的API,以及对Java反射机制的深度利用,使得序列化和反序列化过程自动化程度高。然而,对于需要高度定制序列化规则或者追求极致性能的场景...
如果你需要对Gson进行深度定制或者解决特定问题,源码将提供极大的帮助。 使用Gson时,你可以通过以下步骤将其引入Java项目: 1. 将对应的JAR文件添加到项目的类路径中,这通常可以通过IDE(如IntelliJ IDEA或...
在实际开发中,Gson通常与其他框架或库结合使用,如Spring MVC、Android等,以实现数据的序列化和反序列化。同时,由于其良好的性能和易用性,Gson已经成为Java世界里处理JSON的首选工具之一。理解并熟练掌握Gson的...
GSON库是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。它使得在Java应用程序中处理JSON格式的数据变得极其便捷。...深入学习和掌握GSON的使用,将极大地提升Java应用中JSON数据操作的效率和质量。
- **序列化**:当你有一个Java对象,例如一个User类的实例,你可以使用`Gson.toJson()`方法将这个对象转换为JSON字符串。Gson会自动检测对象的属性,并将其转换为JSON键值对。例如: ```java User user = new User(...
Gson的强大之处在于它的灵活性和深度映射能力。以下是一些基本使用示例: 1. 对象转JSON: ```java Person person = new Person("John", "Doe"); Gson gson = new Gson(); String jsonString = gson.toJson(person)...
- `JsonElement`: Gson的`JsonElement`类代表JSON结构的根,可以用来解析JSON字符串并进行深度遍历。 - `JsonParser`: 提供了对JSON文本的解析,返回`JsonElement`对象,适用于自定义解析逻辑。 总结,Java Gson是...
4. **配置选项:** Gson提供了丰富的配置选项,例如忽略未知字段、保留原始日期格式、控制序列化深度等,以便更好地适应不同的应用场景。 5. **流式API:** 对于大量数据处理,Gson提供了流式API,可以逐行读写JSON...
Gson是Google开发的一个Java库,它能够将Java对象转换为JSON字符串,同时也能将JSON内容解析回等效的Java...在实际开发中,根据项目需求,开发者可以灵活地选择使用哪个JAR文件,或者结合源码和API文档进行深度定制。
3. **对象深度嵌套**:对于嵌套的对象和数组,Gson可以自动处理并生成相应的JSON结构。 4. **字段忽略**:通过注解`@Expose`,开发者可以选择暴露哪些字段到JSON,从而控制序列化和反序列化的细节。 5. **日期和...
JSON(JavaScript Object Notation)和Gson是两个在Java编程中广泛使用的数据序列化和反序列化库。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Gson则是Google提供的一个开源库,...
- 深度复制:通过Gson可以实现Java对象的深度克隆。 7. **序列化策略** - `ExclusionStrategies`接口:允许自定义哪些字段应该被包含或忽略在序列化和反序列化过程中。 - `@Expose`注解:标记哪些字段应被序列化...
Gson的强项在于其类型安全和丰富的特性,适合需要深度定制JSON序列化的场景。而Fastjson则以其速度和低内存消耗著称,更适合大数据量和性能敏感的应用。 在实际开发中,选择哪个框架主要取决于项目需求。如果需要...
5. **JsonParser和JsonElement**:Gson提供了JsonParser类,用于解析JSON字符串,生成JsonElement对象,可以进行深度解析和遍历。 在Android中,Gson库广泛应用于网络请求,例如与RESTful API交互,或者保存和读取...
一、Gson的基本使用 1. 将Java对象转换为JSON字符串: ```java Gson gson = new Gson(); Person person = new Person("John", "Doe", 30); String jsonString = gson.toJson(person); ``` 在这个例子中,`...
例如,你可以使用Gson的`Gson().toJson()`方法将一个Java对象转化为JSON字符串,再用`fromJson()`方法将JSON字符串解析为Java对象。这对于处理网络请求响应或存储数据到本地文件非常有用。 接下来,我们讨论XOM-...