作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的 xml
<Trade>
<row>
<TradeID>1</TradeID>
</row>
<row>
<TradeID>2</TradeID>
</row>
</Trade>
我想将其反序列化为对象列表。现在我知道我可以做到
public class Trade{
List<Row> rows;
public class Row{
int tradeID;
}
}
但理想情况下,我希望完全避免创建基于外部标记的类,因为它毫无值(value)。有什么方法可以直接将此 xml 反序列化为 List<Row>?
最佳答案
如果您想反序列化为 List<Row>
直接,您可以在 xmlMapper#readValue 中指定所需的 valueType
String xml =
"<Trade>\r\n"
+ " <row>\r\n"
+ " <TradeID>1</TradeID>\r\n"
+ " </row>\r\n"
+ " <row>\r\n"
+ " <TradeID>2</TradeID>\r\n"
+ " </row>\r\n"
+ "</Trade>\r\n"
+ "";
XmlMapper xmlMapper = new XmlMapper();
List<Row> rows = Arrays.asList(xmlMapper.readValue(xml, Row[].class));
System.out.println(rows);
打印:
[Row [tradeId=1], Row [tradeId=2]]
和 Row 类:
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@JacksonXmlRootElement(localName = "row")
public class Row {
@JacksonXmlProperty(localName = "TradeID")
private int tradeId;
public int getTradeId() {
return tradeId;
}
public void setTradeId(int tradeId) {
this.tradeId = tradeId;
}
@Override
public String toString() {
return "Row [tradeId=" + tradeId + "]";
}
}
关于java - Jackson 反序列化为子元素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278899/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!