【发布时间】:2011-12-06 22:37:12
【问题描述】:
是否有人知道我们可以通过 Java 从 XML 模式生成 JSON 模式或从 JSON 模式生成 XML 模式的工具或方法?
【问题讨论】:
标签: java xml json xsd jsonschema
是否有人知道我们可以通过 Java 从 XML 模式生成 JSON 模式或从 JSON 模式生成 XML 模式的工具或方法?
【问题讨论】:
标签: java xml json xsd jsonschema
将 XML 转换为 JSON 非常简单,可以通过多种方式完成:
http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java
http://www.json.org/javadoc/org/json/XML.html#toJSONObject%28java.lang.String%29
对于从 XML 到 JSON 的转换,看看这个,似乎很简单:
http://www.bramstein.com/projects/xsltjson/
http://code.google.com/p/xml2json-xslt/
http://json-lib.sourceforge.net/index.html
还有http://x-stream.github.io/ 库允许您在双方进行转换(也可以转换为 POJO)。您可以在此处找到简单的示例用法: Convert XML to JSON format
/edit: ups,看来我没有正确理解问题:P
【讨论】:
如果您可以获得与 Schema 匹配的 POJO(例如使用 xjc),则可以使用 Jackson 生成 JSON Schema(请参阅 ObjectMapper.generateSchema(...))。
【讨论】:
例如,CXF 可以在 Json 或 XML 中提供请求,因此它必须有一种方法来转换两者。
【讨论】:
我希望您能够编写一个 XSLT 脚本,该脚本相当容易地从 XML 模式生成 JSON 结构。这是因为 XSLT 非常乐意读取和转换 XML,而 XML 模式就是 XML。
走另一条路会有点困难。您需要能够读取 JSON 模式并输出 XML 的东西。为此,您需要一个解析器,并且可能需要构建解析的 AST 的东西。有了这个和树遍历,您可能能够相当容易地生成 XML 模式。
ANTLR 可以让您轻松定义语法、构建解析器和 AST。它有某种“结构化文本”生成器,可能适用于遍历 AST。
我们的DMS Software Reengineering Toolkit 类似于 ANTLR,但具有更多的机器。使用 DMS,您可以定义 JSON 语法、构建 AST,然后编写源到源转换以将其映射到表示您的架构的 XML。
【讨论】:
不是很优雅,但是jackson可以生成json schema from a java class 。因此,您可以使用您的 xml 架构 generate java classes from it with jaxb annotations,然后将其生成为 jackson supports jaxb annotations 的 json 架构。
【讨论】: