0

我有一个简单的 xml,如下所示:

<token>
  <merchant>MyMerchant</merchant>
</token>

这个xml我想转换成下面的类:

@JsonTypeName( value = "token" )
public class Token{
  @JacksonXmlProperty( localName = "merchant")
  private String merchant;
}

我正在使用带有以下代码的 Jackson 2.3.2 版:

   String simpleTokenXml = 
       "<token><merchant>MyMerchant</merchant></token>";
    XmlMapper xmlMapper = new XmlMapper(  );
    Token token = xmlMapper.readValue(simpleTokenXml, Token.class);

抛出以下异常:

com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id 'merchant' into a subtype of [simple type, class data.model.Token]

如果我尝试将令牌对象转换为 xml,则 XmlMapper 会返回一个 xml 字符串,如下所示:

<Token xmlns="">
<token>
    <merchant>MyMerchant</merchant>
</token>
</Token>

如何配置 ObjectMapper 以忽略 ObjectNode?我需要我的映射器来理解我的 xml,而无需对其进行一些字符串操作。感谢帮助。

4

1 回答 1

0

我解决了这个问题。问题是 Token 类的父类包含注解 @JsonTypeInfo(use = Id.NAME)。将 use 设置为 NONE 后,一切正常。

于 2015-01-16T09:52:18.940 回答