我有一个JSON对象,它实际上是一个序列化的java对象。
{
user: 'user',
telephone: '123456789'
}
java对象的telephone字段已从“telephone”重命名为“mobile”。因此,现在java对象具有以下字段。
- 使用者
- 移动的
我想做的是一个数据迁移。我想从数据库中获得数据作为JSON字符串-〉并使用GSON将JSON解析为java对象(到目前为止我们使用的是gson.fromJson(class,data)方法)保留telephone中的值(因为telephone现在不是java类中的一个字段)-这样我就可以将数据传递给新字段(移动的)。
我该怎么做?
P.S.:-这不能通过一些简单的数据库查询来实现,因为我们使用的文件存储系统没有查询工具和编码值。
P.S.:-此外,我们使用实体事件框架
2条答案
按热度按时间5q4ezhmt1#
您需要编写自定义反序列化程序并将
telephone
Map到mobile
:印刷品:
hm2xizp92#
如果另一个google漫游者发现这个问题,有一种方法可以处理额外的标签,而不需要完全重新创建反序列化。基于这里给出的一个例子。基本前提是这个工厂首先去反序列化类,它使用类的下一个可能的类型适配器来处理初始反序列化,做它的后处理并返回结果。
然后向Gson对象中添加如下内容,并正常使用
注意本例中的JsonReader/JsonWriter都是来自gson库,可能还有其他实现,所以要注意导入。