反序列化一个列表导致重复

我有一个简单的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);

}

回答:

配置映射器不使用的getter如使用 MAPPER.configure制定者(MapperFeature.USE_GETTERS_AS_SETTERS,假);

解决了这个

回答:

尝试使用@JsonIgnore标注在列表中的重复,因此没有被序列化,它看起来是这样的:

@JsonIgnore  

public ArrayList<String> getNames_r() {

return getNames();

}

这应该在你的序列化JSON摆脱你的重复字段的。

希望它能帮助,

何塞·路易斯·

以上是 反序列化一个列表导致重复 的全部内容, 来源链接: utcz.com/qa/266894.html

回到顶部