【问题标题】:XML to POJO and vice versa [duplicate]XML到POJO,反之亦然[重复]
【发布时间】:2012-06-28 14:42:22
【问题描述】:

可能重复:
What is the best/simplest way to read in an XML file in Java application?

如何将 XML 转换为 POJO,反之亦然? axis2 是否提供该功能?或者java是否已经有内置功能?或任何其他框架?谢谢

【问题讨论】:

标签: java xml pojo


【解决方案1】:

我真的鼓励您使用 JAXB

JAXB 是一个注释框架,它将 Java 类映射到 XML 和 XML 模式(反之亦然)。它非常有用,因为您无需与 XML 文档的抽象表示进行交互,而是可以使用更接近您正在建模的领域的真实 Java 对象。

如果你还需要构建一个 RESTful web 服务,通过 JAXB 将 Java 对象自动序列化/反序列化为 XML,我也建议你阅读这本书:

带有 JAX-RS 的 Oreilly RESTful Java -(第 6 章。JAX-RS 内容处理程序)

【讨论】:

  • 它实际上与 jdk 捆绑在一起(虽然不确定 jre)。这是一个例子,看起来很容易使用:java2s.com/Code/Java/JDK-6/…
  • 也许忘记我的评论,这更容易......发布不同的答案
  • +1 用于 JAXB。此外,由于它是一个标准 (JSR-222),因此还有其他实现,例如 EclipseLink MOXy:eclipse.org/eclipselink/moxy.php(我是技术主管)。
【解决方案2】:

如果您需要一个现成的框架,请查看xstream

【讨论】:

    【解决方案3】:
    【解决方案4】:

    您可以尝试 JAXB http://jaxb.java.net/ 或 XMLBeans http://xmlbeans.apache.org/

    【讨论】:

      【解决方案5】:

      使用XMLEncoderXMLDecoder 类将它的一个简单版本内置到java >=1.4 中。


      一个简单的例子

      用法很简单,就像

      XMLEncoder xmlEncoder = new XMLEncoder( outputStream );
      xmlEncoder.writeObject( myObject );
      

      会给你类似的东西

      <?xml version="1.0" encoding="UTF-8"?> 
      <java> 
       <object class="your.class.Name"> 
        <void property="fieldName"> 
         <boolean>true</boolean> 
        </void> 
        etc. etc. etc. 
       </object> 
      </java> 
      

      读回你简单做的对象

      XMLDecoder xmlDecoder = new XMLDecoder( inputStream );
      MyClass thing = (MyClass) xmlDecoder.readObject();
      

      这是我在 google 上找到的随机教程:
      http://www.avajava.com/tutorials/lessons/how-do-i-write-a-javabean-to-an-xml-file-using-xmlencoder.html

      这种方法并不是非常灵活,但它是内置的,无需配置且非常可预测。可能是一个很好的起点。

      一些补充说明:

      这是一个概述 xml 格式的文档:http://java.sun.com/products/jfc/tsc/articles/persistence3/

      这是我刚刚找到的另一个链接,它解释了如何 从 xmlencoder 移动到 jaxb(内置于 jdk >= 1.6)以获得更大的灵活性: http://en.newinstance.it/2010/08/05/javabeans-to-xml-with-no-libraries/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 2012-04-02
        • 2012-03-24
        相关资源
        最近更新 更多