【发布时间】:2018-12-06 08:29:28
【问题描述】:
我正在寻找一种方法来(反)序列化 List 的项目而不使用杰克逊中的注释。这可能吗?到目前为止,我正在尝试将<item>-tag 替换为告诉该项目类别的标签,但无济于事。即使这样可行,我也不确定 Jackson 是否会提供一种方法来处理这些标签信息。
为了更好地说明我的目标,这里有一个示例:
public class JacksonTest {
private static class ListElement {
private boolean value;
// getters, setters, constructors omitted
}
@Test
public void testDeSerialization() throws Exception {
final List<ListElement> existing = Arrays.asList(new ListElement(true));
final ObjectMapper mapper = new XmlMapper();
final JavaType listJavaType = mapper.getTypeFactory().constructCollectionType(List.class, ListElement.class);
final String listString = mapper.writerFor(listJavaType).writeValueAsString(existing);
System.out.println(listString);
// "<List><item><value>true</value></item></List>"
}
}
所以,结果是<List><item><value>true</value></item></List>,而我希望将<item>-tag 替换为(合格的)类名或提供type-attribute。
当然,如果 Jackson 无法处理此类名称,即使这样也无济于事。
我是走到了死胡同还是有路要走?p>
【问题讨论】:
标签: java xml generics collections jackson