我正在研究如何将 POJO 序列化为 json 字符串。我正在使用杰克逊库并遇到了问题。
json 对象中的值可以是字符串或字符串数组,如下所示...
{"mimeTypes":"all"}
或者
{"mimeTypes":["application/pdf", "application/msword"]}
这是我目前的方法
@JsonIgnore
private String mimeTypes;
@JsonIgnore
private String[] mimeTypesArray;
@JsonRawValue
@JsonProperty("integration/enabled-mime-types")
private String mimeType;
public void setMimeTypes(String mimeTypes) {
this.mimeTypes = mimeTypes;
mimeType = mimeTypes;
}
public void setMimeTypes(String[] mimeTypes) {
this.mimeTypesArray = mimeTypes;
try {
JSONArray jsonArray = new JSONArray(mimeTypes);
this.mimeType = jsonArray.toString();
} catch (JSONException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
基本上我有一个字符串字段、一个字符串数组字段和一个我想添加到 json 对象的字符串字段。我在 setter 上序列化,因此对象映射器不必选择要使用的字段。
这感觉像是一种 hacky 的做事方式。会有更好的解决方案吗?我一直在阅读有关使用杰克逊视图的信息,但我不确定这是否可能解决我的问题。