假设以下两类
第一个
这个的JSON序列化是{"name":"Bob","address":{"city":"London","postcode":"LO12 345"}}
在API输出中,我希望将地址序列化为单个字符串,而不是对象。例如{"name":"Bob","address":"London, LO12 345"}
如果我为Person
编写一个自定义序列化程序,我就可以实现这一点,甚至可以设法解决只更改这一个属性而不是所有属性的问题。但是,我仍然有一个问题,那就是我现在需要更改每个使用Address
的类的方式。
我想知道,是否有一种方法可以为Address
编写一个序列化器,它只返回一个值而不是一个对象,就像原语一样。然后我希望每个使用Address
的类都能表现得好像Address
是一个String
一样,并将其序列化。
这种事可能吗?
2条答案
按热度按时间8cdiaqws1#
您可以为
Address
编写一个序列化程序,如下所示:此序列化程序输出一个
JsonPrimitive
,它是一个包含城市和邮政编码的字符串。然后,您可以在创建
Gson
时注册此属性:输出量:
r9f1avp52#
不确定这是否是您要寻找的,但如果您只是将其作为数据类呢?
那么它的
toString()
是一个非常具有描述性的字符串,类似的对象也算作相等,比如