jackson - Jackson XML 序列化不包装子元素并使用子元素名称
问题描述
我想在序列化如下所示的类结构时生成以下 XML:
<C>
<D A="FrontRight"/>
<W A="Green"/>
</C>
Java 代码如下所示:
@JacksonXmlRootElement(localName = "C")
public static class Car {
public Car(List children) {
this.children = children;
}
@JacksonXmlElementWrapper(useWrapping = false)
public List children;
}
@JacksonXmlRootElement(localName = "D")
public static class Door {
@JacksonXmlProperty(localName = "A", isAttribute = true)
public String placement = "FrontRight";
}
@JacksonXmlRootElement(localName = "W")
public static class Window {
@JacksonXmlProperty(localName = "A", isAttribute = true)
public String color = "Green";
}
@JacksonXmlElementWrapper(useWrapping = false)
public List children;
}
并像这样调用映射器:
ObjectMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
System.out.println(mapper.writeValueAsString(new Car(Arrays.asList(new Door(), new Window()))));
产生这个输出:
<C>
<children A="FrontRight"/>
<children A="Green"/>
</C>
我应该怎么做才能摆脱children
并让它使用在列表中放置的类上的命名注释?
解决方案
推荐阅读
- javascript - 快递:BasicAuth
- r - 计算 Spearman 的 rho 以增加 for 循环中的行子集
- swift4 - 无法将类型 '(Any) -> ()' 的值转换为预期的参数类型 '(_) -> _'
- python - 深拷贝特定属性
- regex - 替换匹配组中字符的多个实例
- python - 从文件获取输入时子进程python模块问题
- javascript - Electron dialog.showOpenDialog() 过滤器不工作
- batch-file - 删除不需要的目录,在屏幕上强制产生错误
- javascript - Twitter Bootstrap:导航栏未在移动视图中打开
- java - 在Android中绘制动态自定义视图棋盘