首页 > 解决方案 > 包含属性时,Jackson 反序列化失败

问题描述

这是杰克逊反序列化到子元素列表的后续行动

<Trade>
  <row>
    <TradeID>1</TradeID>
  </row>
  <row>
    <TradeID>2</TradeID>
  </row>
</Trade>
public class Trade {
  List<Row> rows;
  public class Row {
    int tradeID;
  }
}

我可以反序列化我的 Row 对象

XmlMapper xmlMapper = new XmlMapper();
List<Row> rows = Arrays.asList(xmlMapper.readValue(xml, Row[].class));

但是,如果我在 Trade 对象中具有如下所示的属性,则它无法解析(我得到一个对象列表,其中所有内容都具有空值)。

我可以告诉杰克逊忘记属性吗?(不幸的是,我对产生所有这些噪音的系统的控制为 0)

<Trade delimiter="~" header="true" date="2019-05-30 13:30:42" fileName="CRD.VANGFI_BOD.Trade.0000000007" sequence="7" ALLOC_AGGR_SAME_NULL_FIELDS="ACCT_CD,ACCT_NAME,TRADE_ID,PSET" ALLOC_AGGR_SUM_FIELDS="FEE_1_AMT,FEE_2_AMT,FEE_3_AMT,FEE_4_AMT,FEE_5_AMT,FEE_6_AMT,EXEC_QTY,EXEC_AMT,INC_AMT,INC_BASE_AMT,EXEC_ORIGINAL_FACE,NET_PRIN_AMT,NET_PRIN_BASE_AMT" OUTPUT_TYPE="xml" ALLOC_AGGR_AGGREGATION_FIELDS="ORDER_ID,UMA_HOLDING_ACCT_CD" ENABLE_ALLOCATION_AGGREGATION="N">

标签: javaxmljackson

解决方案


你有没有尝试配置这个。

xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)

推荐阅读