Java Jackson:将空或空哈希映射序列化为空数组
我有一个类,它的属性应该使用Jackson序列化为JSon:Java Jackson:将空或空哈希映射序列化为空数组,java,json,rest,jackson,ejb,Java,Json,Rest,Jackson,Ejb,我有一个类,它的属性应该使用Jackson序列化为JSon: public class MicroClinicalInfo { @JsonProperty private Map<String, String> clinicalInfo; @JsonCreator public MicroClinicalInfo() {} public MicroClinicalInfo(DtoMicroSampleInfo dto) {
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);
}
}
}
但我不知道如何给出一个统一的愿景。因为非空HashMap的序列化是正确的,但我不知道如何将其呈现为空数组。
谢谢大家当临床信息存在时,您是否传递json对象作为响应?是的,当临床信息存在时,我被要求返回一个json对象,该json对象的数组键值如下
{“clinicalInfo”:{“扇区注释”:“左肘”}
序列化HashMap时会自动执行此操作。如果信息不存在,则发送空对象是完全正确的。这对前端的响应处理也很有帮助。反正他们想要一个空数组……也许我应该把HashMap包装在ArrayList中?类似于private List clinicalInfo=new ArrayList()
?如果必须这样做,则返回Collections.emptyList();这也会有帮助。
@JsonGetter
public Map<String, String> getClinicalInfo() {
if (this.clinicalInfo != null && !this.clinicalInfo.isEmpty()) {
return this.clinicalInfo;
}
else {
}
}