You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XmlMapper解析XML报JsonParseException:意外字符\,求解决办法

使用Jackson XmlMapper解析XML的问题排查与解决

问题场景

尝试用Jackson的XmlMapper的readTree()方法解析字符串变量message中的XML文档,核心代码如下:

XmlMapper xmlMapper = new XmlMapper(); 

JsonNode node = null;
try {
    node = xmlMapper.readTree(message.getBytes());
} catch (Exception e) {
    parseLogger.error("------+++++ parse(): - **EXCEPTION** - e=[" + e + "]");
}

错误排查过程

  1. 初始运行时无任何错误输出,推测问题出在XML开头的序言部分:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1. 自行添加代码转义序言中的双引号:
message = message.replace("\"", "\\\"");

(注:除XML序言外,消息中无其他双引号)
修改后的序言变为:

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
  1. 修改后代码执行到xmlMapper.readTree(message.getBytes())时报错:
JsonParseException: Unexpected character '\' (code 92); expected a quote character enclosing value for 'version'
 at [row,col,system-id]: [1,15,"N/A"]]

此时困惑于转义后的序言为何仍提示存在意外字符\,同时不理解错误信息中N/A的含义。

附XML消息示例

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<record>
  <rule>
    <customer>1234</customer>
    <schemaName>schema_name</schemaName>
    <schemaVersion>1.0</schemaVersion>
  </rule>
  <identifier>
    <XXX_USR_PN_IDXXX>12345</XXX_USR_PN_IDXXX>
  </identifier>
  <aRecord>
    <XXX_USR_PN_ID>12345</XXX_USR_PN_ID>
    <UserName>
      <ENTPR_USER_NM_TX>Epple.12345</ENTPR_USER_NM_TX>
    </UserName>
    <person>
      <ADM_ORG_CD>urn</ADM_ORG_CD>
      <XXX_ASSOC_CD>urn:V01</XXX_ASSOC_CD>
      <XXX_OCC_CD>123</XXX_OCC_CD>
      <JB_XXX_OCC_CD>456</JB_XXX_OCC_CD>
      <EMA>johna@mail.com</EMA>
      <ORG_CD>11</ORG_CD>
      <PERSONA_TYP_CD>JUNK122:GOOD321</PERSONA_TYP_CD>
      <PG_CD>07</PG_CD>
      <XYZEC_TYP_CD>12</XYZEC_TYP_CD>
      <XYZ_CAT_CD>G</XYZ_CAT_CD>
    </person>
    <location>
      <CTRY_CD>Yes</CTRY_CD>
    </location>
  </aRecord>
</record>

最终解决方案

经同事排查,问题根源为OUD产品已依赖Jackson 2.9.9版本,项目需在pom.xml中显式声明该版本的Jackson依赖,同时调整Jenkins配置,重新构建项目后问题解决。


内容的提问来源于stack exchange,提问作者jstack100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:33:11