我正在努力做到以下几点
鉴于
Map<String, String> labels = {"en_GB" : "English", "de" : "German", "it" : "Italian"}....
我想用jackson把它序列化到
[{"language" : "en_GB", "label" : "English"}, {"language" : "de", "label" : "German"}, {"language" : "it", "label" : "Italian"}]
本质上,将Map拆分为对象数组,键和值作为单独的属性
而不是
{"en_GB" : "English", "de" : "German", "it" : "Italian"}
我搜遍了Jackson所有的文件,却找不到答案。我会很感激你的帮助。提前谢谢!
1条答案
按热度按时间eulz3vhy1#
方法1:定义一个中间pojo,并将map<string,string>转换为中间对象列表
首先定义一个中间pojo:
将Map转换为中间pojo的列表,并将列表序列化为字符串:
输出为:
方法2:定义
JsonSerializer
并使用它进行序列化工作假设要直接序列化以下类:
首先,定义一个
JsonSerializer
序列化LanguageInfos
:需要中间的pojo
LanguageInfo
上述定义:不需要中间的pojo:
其次,将此序列化程序注册到objectmapper对象:
第三,直接使用objectmapper序列化:
输出为: