4
JsonIgnore註釋似乎不適用於我。任何想法爲什麼?傑克遜的JsonIgnore
public class JsonTest implements Serializable {
@JsonIgnore
private static JsonTest instance = null;
@JsonIgnore
private transient Set<String> set = new CopyOnWriteArraySet<String>();
private JsonTest() {}
@JsonIgnore
public static JsonTest getInstance() {
if (instance == null)
instance = new JsonTest();
return instance;
}
public void setSet(Set<String> set) {
this.set = set;
}
@JsonIgnore
public Set<String> getSet() {
return set;
}
public String toString() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
try {
return mapper.writeValueAsString(this);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("test");
JsonTest.getInstance().setSet(set);
System.out.println(JsonTest.getInstance().toString());
}
}
輸出:{ 「設定」:[ 「測試」]}
我不記得肯定的,但setSet()暴露了嗎?我知道一個setter公開一些序列化的東西似乎很奇怪。 –
哪個傑克遜版?另外:確保傑克遜映射器(具有ObjectMapper')和版本註釋jar的版本是相同的(兩者都是1.x,或者兩者都是2.x) - 如果這些版本混在一起,則無法識別註釋。 – StaxMan
感謝StaxMan,我有兩個不同版本的註釋和objectmapper。 – hansi