我有一個簡單的pojo,我有一個字符串列表和默認get/set,我有另一個得到,所以在json我得到2個不同的字段 我的pojo和測試代碼片段低於反序列化一個列表導致重複
public static class TestClass{
public ArrayList<String> names = null;
public ArrayList<String> getNames() {
if(null == names) names = new ArrayList<>();
return names;
}
public void setNames(ArrayList<String> names) {
this.names = names;
}
public ArrayList<String> getNames_r() {
return getNames();
}
@Override
public String toString() {
return "TestClass [names=" + names + "]";
}
}
@Test
public void testDeSerializationSimple() throws JsonParseException, JsonMappingException, IOException{
String justSchool = "{\"names\":[\"second\",\"one\",\"two\",\"three\"],\"names_r\":[\"second\",\"one\",\"two\",\"three\"]}";
ObjectMapper myDefaultMapper= new ObjectMapper();
myDefaultMapper.setDateFormat(CoreUtils.COMMON_SIMPLE_DATE_FORMAT)
.setTimeZone(TimeZone.getTimeZone("UTC"))
.enable(SerializationFeature.INDENT_OUTPUT)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
TestClass testReadDummy = myDefaultMapper.readValue(justSchool, TestClass.class);
System.out.println(" mapper test read = "+testReadDummy);
//assertEquals(testRead.getListString().size(),4);
System.out.println("list = "+testReadDummy);
assertEquals(testReadDummy.names.size(), 4);
}
我想字段被序列化,但是雖然反序列化我不想讀取它。 – Dilip
https://github.com/FasterXML/jackson-databind/issues/95這是類似的,但由於我在舊版本,我試圖找出任何方式來獲得預期的輸出 – Dilip
你在什麼版本?我知道從版本Jackson 1.9開始,您可以使用'@ JsonIgnore'和'@ JsonProperty'註釋來控制屬性的序列化和反序列化,正如我已經在這裏:http://stackoverflow.com/questions/30134298/asymmetric-serialization-and-deserialization - 使用 - 傑克遜/ 30147413#30147413。希望能幫助到你! – jbarrueta