【问题标题】:Is there a simple way to create xml in Java as compared to creating JSON [duplicate]与创建 JSON 相比,是否有一种在 Java 中创建 xml 的简单方法 [重复]
【发布时间】:2012-10-04 05:15:29
【问题描述】:

可能重复:
Create XML file using java

在 Java 中创建 JSONObject {"box":"tissue","desk":"wood"} 我需要做的就是

JSONObject json = new JSONObject();
json.put("box","tissue");
json.put("desk","wood");

要创建 JSONObject {"my-stuff":{"box":"tissue","desk":"wood"}} 我需要做的就是

JSONObject json = new JSONObject();
json.put("box","tissue");
json.put("desk","wood");

JSONObject myStuff = new JSONObject();
myStuff.put("my-stuff",json);

然后要恢复 String 表示,我只需执行 json.toString() 或 myStuff.toString()。

我碰巧在使用org.codehaus.jettison.json.JSONObject;,但实际上这就是 JSONObject 的工作原理。

有没有一种同样简单的方法可以在 Java 中创建 XML?如果不是,那么在 XML 中做我刚才所做的最简单的方法是什么?

【问题讨论】:

标签: java xml json


【解决方案1】:

当然有,但是如果你已经写了一堆 json 代码,我建议你直接把你的 json 转换成 xml,像这样:http://answers.oreilly.com/topic/279-how-to-convert-json-to-xml-in-java/

我很抱歉没有直接回答您的问题,但除非您已经实现了序列化包装器,否则只需将 json 转换为 xml 即可节省大量开发时间(而不是复制您所在的每一行代码)从您的 json 对象中添加/提取,或者 - 正如我之前提到的 - 实现序列化包装器)。

【讨论】:

  • 感谢您的建议。我相信有人会发现它很有用。但我没有 json 对象。
  • 我认为当你有 JSON 对象时这非常有用。另一方面,@kasavbere,我认为您可以先生成 JSONObjects 和 JSONArrays,就像您在问题中解释的那样,然后您可以将它们转换为 XML。
  • 这是个好主意。谢谢。
【解决方案2】:

另外,请查看 Groovy(与 Java 兼容),它是 MarkupBuilder。示例见http://www.ibm.com/developerworks/java/library/j-pg05199/

【讨论】:

    【解决方案3】:

    你试过Xstream吗?如果您有一个建模良好的类,那么将 xml 生成为字符串就很简单了。您还可以使用注释自定义输出。

    【讨论】:

      【解决方案4】:

      我建议Dom4J:

      Element root = DocumentHelper.createElement("my-stuff")
      Document dom = DocumentHelper.createDocument(root);
      root.addElement("box").setText("tissue");
      System.out.println(dom.asXml());
      

      【讨论】:

      • 感谢您的回复。 setContent 需要一个列表而不是字符串。我正在关注链接。它有一些例子。但我仍然不确定如何获得<my-stuff><box>tissue</box><desk>wood</desk></my-stuff>。
      • @kasavbere 这是 setText,不是 setContent,抱歉。
      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 2020-10-18
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2020-03-18
      相关资源
      最近更新 更多