【发布时间】:2017-10-12 06:41:47
【问题描述】:
在我的数据传输对象中,我有一个声明
private Map<Long, StateDomain> stateDomains;
如果你只是将它序列化为 JSON,你会得到 p>
{
stateDomains:[{"key1": stateDomain1}, {"key2": stateDomain2}...]
}
我不想要的。相反,我希望它变成
{
stateDomains:[{stateDomain1}, {stateDomain2}...]
}
也就是说,仅将此映射的值序列化为 List,并丢弃与 Long 键的配对。
杰克逊如何才能最好地实现这一目标?
【问题讨论】:
-
为什么不简单地也有一个
private List<StateDomain> stateDomainList并将您的字段stateDomains标记为@JsonIgnore? -
@Seelenvirtuose 我尽量减少对性能的影响。为了获得最佳性能,我需要地图。如果我保留并行字段,我还需要并行更新列表。这当然是可行的,但需要更多的逻辑。我现在在想的是使用 JsonIgnore 属性和 JsonProperty 仅返回值集的 getter 进行注释。
标签: java json serialization jackson