Gson 对 Map<String, Object> 嵌套类型的序列化与反序列化
gson 简介:
Gson is a Java library that can be used to convert Java Objects into its JSON representation
gson 扩展的一种方式:通过com.google.gson.GsonBuilder 注册TypeAdapter:
demo code:
遇到的问题:
遇到这样的情况,对于现有的随机的数据(数据格式无法确定,类型复杂),需要使用 Map<String, Object> 类型于json格式互相转换,其中Map中的Object类型的value可能会是Map<String, Object>.现有的gson版本会遇到 无法序列化或者无法反序列化,因为gson是通过Map<String, Object> 去确定value的类型为Object.class,无法进一步序列化。
改进:
照猫画虎,扩展现有的com.google.gson.DefaultTypeAdapters.MapTypeAdapter(此类为package visible, 要么copy代码,要么让自己的package为com.google.gson)
代码demo:
使用方式:
局限:
这样仅仅解决了gson对于嵌套的Map<String, Object>类型的序列化与反序列化,并且要求Map中的value为primative type or
Map<String, Object>(代码42行,使用“{”作为判断是否为complex value type)
本文介绍了如何解决Gson在处理Map<String, Object>嵌套类型时的序列化和反序列化问题。通过扩展DefaultTypeAdapters.MapTypeAdapter并创建自定义的FixedMapTypeAdapter,可以处理复杂类型。文章提供了代码示例和使用方法,但仅解决了包含基本类型或Map<String, Object>的嵌套Map的情况。"
136828442,9369275,DC库设置指南——FPGA设计关键步骤,"['FPGA设计', '硬件综合', 'Verilog HDL', 'DC工具']
5336

被折叠的 条评论
为什么被折叠?



