Vla*_*nko 5 java xml jackson xml-deserialization deserialization
我有一个来自 Recurly 服务的传入 xml,其中包含事务列表。有时它是空的,看起来像这样:
<transactions type="array">
</transactions>
Run Code Online (Sandbox Code Playgroud)
我需要使用杰克逊反序列化它。我尝试过下一个映射
@XmlRootElement(name = "transactions")
public class TransactionObjectListResponse extends ArrayList<TransactionObjectResponse> {
}
Run Code Online (Sandbox Code Playgroud)
其中每个事务的 TransactionObjectResponse 类。它适用于非空集合,但在没有事务到来时会失败。出现下一条消息:
java.lang.IllegalStateException: Missing name, in state: END_ARRAY
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser.getCurrentName(FromXmlParser.java:310)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:289)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:157)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:123)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:230)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:207)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
Run Code Online (Sandbox Code Playgroud)
我直接使用XmlMapper,
xmlMapper.readValue(responseXml, TransactionObjectListResponse.class);
Run Code Online (Sandbox Code Playgroud)
响应实体结构并不严格,任何帮助都会被应用。谢谢。
小智 1
我在运行 2.2 版本的“jackson-dataformat-xml”时遇到了类似的问题。我把这个库降了一个版本,它起作用了。
\n\nIE。(如果您使用的是 Maven)
\n\n<dependency>\n\xc2\xa0\xc2\xa0<groupId>com.fasterxml.jackson.dataformat</groupId>\n\xc2\xa0\xc2\xa0<artifactId>jackson-dataformat-xml</artifactId>\n\xc2\xa0\xc2\xa0<version>2.2.3</version>\n</dependency>\nRun Code Online (Sandbox Code Playgroud)\n\n这与第 3 方 java recurly 库使用的版本相同 - http://search.maven.org/#artifactdetails%7Ccom.ning.billing%7Crecurly-java-library%7C0.1.6%7Cjar
\n| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |