我有一个此类,应使用Jackson将其属性序列化为JSon:
public class MicroClinicalInfo {
@JsonProperty
private Map<String, String> clinicalInfo;
@JsonCreator
public MicroClinicalInfo() {}
public MicroClinicalInfo(DtoMicroSampleInfo dto) {
this.clinicalInfo = new HashMap<String, String>();
for(/* each clinical info entity received from EJB in dto */) {
this.clinicalInfo.put(clinicalInfoKey, clinicalInfoDescr);
}
}
}
现在,如果临床信息不存在,则生成的JSon为{"clinicalInfo":{}}
,但在这种情况下,前端开发人员希望我返回一个空数组而不是一个空对象。因此,我应该返回{"clinicalInfo":[]}
。我怎样才能做到这一点?
我正在尝试:
@JsonGetter
public Map<String, String> getClinicalInfo() {
if (this.clinicalInfo != null && !this.clinicalInfo.isEmpty()) {
return this.clinicalInfo;
}
else {
}
}
但是我不知道如何给出统一的愿景。因为不为空的HashMap的序列化是正确的,但是我不知道如何将其呈现为空数组。 谢谢大家