我试图将包含base64编码标记的xml转换为对象
以下是API响应数据的示例:
<WebResponse>
<RequestId>6541635537</RequestId>
<Items>
<Item>
<Id>1aSd</Id>
<Name>spider</Name>
</Item>
<Item>
<Id>2sze</Id>
<Name>catman</Name>
</Item>
</Items> <Customer>PEN1c3RvbWVyPg0KIDxOYW1lPk5pY288L05hbWU+DQogPEFjY291bnRzPg0KICA8QWNjb3VudD4NCiAgIDxUeXBlPlBSTzwvVHlwZT4NCiAgPC9BY2NvdW50Pg0KICA8QWNjb3VudD4NCiAgIDxUeXBlPlBST01BWDwvVHlwZT4NCiAgPC9BY2NvdW50Pg0KIDwvQWNjb3VudHM+DQo8L0N1c3RvbWVyPg==</Customer>
</WebResponse>
如果你解码客户块,你会得到:
<Customer>
<Name>Nico</Name>
<Accounts>
<Account>
<Type>PRO</Type>
</Account>
<Account>
<Type>PROMAX</Type>
</Account>
</Accounts>
</Customer>
我想做的是在序列化之前先解码Customer块。
这是我一直以来所尝试做的:
ObjectMapper MAPPER = new XmlMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
WebResponse result = MAPPER.readerFor(WebResponse.class).readValue(webResponse);
我在尝试时得到了这个例外:线程“main”出现异常com.fasterxml.Jackson.databind.exc.MismatchedInputException:无法构造组织客户的示例(尽管至少存在一个创建者):无字符串参数
任何提示都欢迎。这是我们的课程:link => MainMapper.class拥有启动测试的main方法。
谢谢你
1条答案
按热度按时间s1ag04yj1#
你用的是Jsonnelialiser。你有XML。在属性上使用@ JsonToolialize注解设置自定义JsonToolializer。在我看来,jackson-dataformat-xml没有annotation,或者你不能用XmlMapper设置一个自定义的解析器。但也许有可能。
我会这么做
然后可以使用Jackson将此XML格式化。