代码之家  ›  专栏  ›  技术社区  ›  tobiasbayer

JAXB和复杂地图

  •  1
  • tobiasbayer  · 技术社区  · 14 年前

    我正试图整理 Map<String, Map<String, Serializable>> 通过JAXB。有两个问题: 1。JAXB无法处理复杂的映射。 2。JAXB无法处理接口(在此上下文中可序列化)。 怎样才能通过JAXB?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Community Dan Abramov    7 年前

    我认为主要问题是接口,因为JAXB应该能够封送map<string,concreteType>。接口的问题是JAXB demarshalling不知道要使用什么具体类型来实现接口。编组流可能不是来自Java代码,因此流不能包含具体类型信息。JAXB必须选择一个实现,它需要帮助才能做到这一点。

    JAXB: How should I marshall complex nested data structures

    Mapping your favorite class

    JBoss Built-in JAXB Providers

    这是Web服务编组的常见问题。一种健壮的方法是使用包含具体类型的数据传输对象,这些具体类型可以在WSDL中为数据传输精确定义。在应用程序代码中,您必须将域对象映射到这些DTO中或从中映射出来,这是一个缺点。这种方法的一个好处是,您的应用程序与数据传输格式松散耦合。

        2
  •  0
  •   secmask    14 年前

    我知道,XML不支持映射类型。所以你可以尝试这样使用

    <item key="somekey" value="hello" />
    

    但你需要自己检查重复的钥匙。