当前位置: 首页 > 知识库问答 >
问题:

使用jackson更快的XmlMapper将简单的xml转换为java对象时出现问题

傅越
2023-03-14

我有一个简单的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,而无需对其进行一些字符串操作。感谢帮助。

共有1个答案

卓学智
2023-03-14

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

 类似资料:
  • 我有一个类,它有一个包含的列表。在我的应用程序中,我在中设置细节,然后添加到的中,然后使用将转换为。 下面代码行的1个illegalAnnotationExc一定类有两个相同名称的属性trainingList

  • 我的服务以JSONArray的形式收到响应。我想将这个JSONArray转换为JavaObject(使用POJO类)。我使用Jackson API进行JSON到JavaObject的转换。我还为该转换编写了帮助类(类名:JsonUtil)。 请在下面找到我的 JSON 响应,其中包含 JSON 对象以及 JSON 数组。 由此,如果未显示数组,则可以进行转换。如果出现数组,则表示它抛出以下错误。

  • 我正在尝试使用JAXB从对象构建XML。 但是我错过了一些东西,因为我得到了一个例外: javax.xml.bind.MarshalExc0019-具有链接异常:[com.sun.istack.internal.SAXException2:类雇员及其任何超级类在此上下文中都是已知的。javax.xml.bind.JAXBExc0019:类雇员及其任何超级类在此上下文中都是已知的。]

  • 问题内容: 我希望我的JSON看起来像这样: 到目前为止的代码: 和 我只是缺少如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课程正确吗?我必须调用哪个实例,以及如何实现此JSON输出? 问题答案: 要使用Jackson 转换JSON:

  • 我希望我的JSON如下所示: 迄今为止的代码: 和 我只是错过了如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课正确吗?我必须调用哪个实例,以及如何实现这个JSON输出?

  • 早上好 相对来说,我是java新手,正在尝试完成一个项目,但是我遇到了问题。我的程序使用SQL构建一个URL来调用web服务,该服务将返回以下JSON: 我需要做的是在末尾去掉“False”或“True”值,根据其结果执行其他逻辑。 我不断得到以下错误: 这是我在WebCall中构建URL后的代码。java类: 在我的第二节课中,代码如下: 关于可能出错的任何想法?我觉得这可能与JSON响应上的[