我正在尝试通过JAXB编组/解组Map<String, Map<String, Serializable>>
。有两个问题:
1. JAXB无法处理复杂的地图。
2. JAXB无法处理接口(在此上下文中为Serializable)。
一个人应该如何通过JAXB获得这个?
答案 0 :(得分:1)
我认为主要问题是接口,因为JAXB应该能够编组Map&lt; String,ConcreteType&gt;。接口的问题是JAXB demarshalling不知道用于实现接口的具体类型。编组流可能不是来自Java代码,因此流不能包含具体类型信息。 JAXB必须选择一个实现,它需要帮助才能做到这一点。
JAXB: How should I marshall complex nested data structures
这是Web服务编组的常见问题。一种可靠的方法是使用包含具体类型的数据传输对象,这些类型可以在WSDL中为数据传输进行精确定义。您必须在应用程序代码中将域对象映射到这些DTO中,这是一个缺点。这种方法的一个好处是您的应用程序与数据传输格式松散耦合。
答案 1 :(得分:0)
据我所知,XML不支持Map类型。所以你可以尝试像这样使用
<item key="somekey" value="hello" />
但您需要自己检查重复的密钥。