我可以从类似于jaxb的json数据创建类

时间:2011-11-04 11:29:07

标签: java xml json jaxb

所以我的代码是api的客户端,数据以xml的形式返回,我已经能够从该xml的一些示例创建有效的xsd文件,然后从模式生成一些JAXB类,这样我的代码现在可以加载使用xml数据而无需直接使用Xml。

但不幸的是,在api的最新版本中,他们已经放弃了xml支持并且只返回json。是否有一个类似于我的xml进程的json进程?

如果从架构中不可能有解决方案,那么如果我手动创建我的json类,我可以使用它们自动在原始json数据中进行武打,所以至少我只需要处理一次json。

编辑:也许https://github.com/ko5tik/jsonserializer会很有用

更新:仅供参考我所以看了jsonschema2pojo,但是只从模式中创建了pojos,而我实际上并没有json模式,只是实际的json。我开始创建一个来自我所拥有的示例json的模式但是没有让它为al工作但是最简单的例子。

然后我看了http://wiki.fasterxml.com/JacksonInFiveMinutes,杰克逊能够使用jsonschema2pojo创建的pojos,如果我设法让它工作。所以我接着尝试了下面的例子并根据我的json数据创建了一个POJO并且它非常简单,然后我尝试使用这个完全数据绑定并且它第一次工作。

总而言之,我将使用Jackson来处理webservice返回的json,我将不得不为每个实体手动创建一个POJO,但至少它可以工作。

4 个答案:

答案 0 :(得分:9)

答案 1 :(得分:1)

如果你想从一个示例JSON文件创建POJO,我已经创建了一个(hacky)ruby脚本可以提供帮助。我在另一个答案中添加了更多详细信息:https://stackoverflow.com/a/8585423/1109175

您可以在github上找到代码:https://github.com/wotifgroup/json2pojo

答案 2 :(得分:0)

不,我没有看到这样做的方法...... JSON没有架构定义,因此没有元数据可以从中生成类。

编辑我更正了,有一个架构定义(草稿),但是从今年年初开始已经过期了,我没有遇到任何架构。

答案 3 :(得分:0)

我认为没有相当于XSD的JSON,这使得你要求的内容真的很难实现。首先,生成器程序无法可靠地推断出需要用于JSON对象属性的Java类型。 (在XML情况下,进行了这些推论并在相应的XSD中表达。)