使用 jackson 更快的 XmlMapper 将简单 xml 对象转换为 java 对象时出现问题
Issue while converting simple xml to java object using jackson faster XmlMapper
我有一个简单的 xml,看起来像这样:
<token>
<merchant>MyMerchant</merchant>
</token>
这个xml我想转换成下面的class:
@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 returns 一个 xml 字符串,如下所示:
<Token xmlns="">
<token>
<merchant>MyMerchant</merchant>
</token>
</Token>
如何配置 ObjectMapper 以忽略 ObjectNode?我需要我的映射器理解我的 xml 而不对其进行一些字符串操作。
感谢您的帮助。
我解决了这个问题。问题是 Token class 的父 class 包含注释 @JsonTypeInfo(use = Id.NAME)。将使用设置为 NONE 后一切正常。
我有一个简单的 xml,看起来像这样:
<token>
<merchant>MyMerchant</merchant>
</token>
这个xml我想转换成下面的class:
@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 returns 一个 xml 字符串,如下所示:
<Token xmlns="">
<token>
<merchant>MyMerchant</merchant>
</token>
</Token>
如何配置 ObjectMapper 以忽略 ObjectNode?我需要我的映射器理解我的 xml 而不对其进行一些字符串操作。 感谢您的帮助。
我解决了这个问题。问题是 Token class 的父 class 包含注释 @JsonTypeInfo(use = Id.NAME)。将使用设置为 NONE 后一切正常。