【发布时间】:2017-02-11 16:02:07
【问题描述】:
有一个要求将java.util.Date 格式化为字符串而不是 json 中的时间戳。
{
"partyName": "Lifecare Pharmaceuticals",
"partyShortName": null,
"lastUpdateDate": 1486639814590, // replace with dd-mm-yyyy hh:mm:ss
}
为了实现日期格式,我添加了以下 ObjectMapperProvider
@Provider
@Component
public class ObjectMapperProvider implements ContextResolver<ObjectMapper> {
@Override
public ObjectMapper getContext(Class<?> type) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationConfig.Feature.USE_ANNOTATIONS);
objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
上述解决方案有效,但会产生另一个忽略 XmlTransient 注释的问题。在模型类中,Party 集合了 PartyContacts 和 PartyContact 映射
@Column(name = "PARTY_ID", referencedColumnName = "PARTY_ID", insertable = false, updatable = false)
@ManyToOne(cascade = CascadeType.ALL, optional = false, fetch =FetchType.LAZY)
private Party party;
和getter方法
@XmlTransient
public Party getParty() {
return party;
}
这里 XmlTransient 注释不起作用,因此 json 递归加载。我又看到了一个 @JsonIgnore 注释,但无法使其与 XmlTransient 一起使用。
【问题讨论】:
标签: java json jackson jax-rs jersey-1.0