从单个json模式文件生成多个POJO

时间:2014-11-21 07:18:07

标签: java json jsonschema jsonschema2pojo

我正在使用 jsonschema2pojo 来生成POJO。它的工作正常。 但我想从单个json模式文件生成多个POJO。 这是否可以使用 jsonschema2pojo 插件。

生成多个POJO的一种方法是提供多个json模式文件,但我不想这样做。我想只提供一个json模式文件作为输入。

我提供以下json架构作为输入:

{
  "Address": {
    "description": "AnAddressfollowingtheconventionofhttp: //microformats.org/wiki/hcard",
    "type": "object",
    "properties": {
        "post-office-box": {
            "type": "string"
        },
        "post-office-address": {
            "type": "string"
        }
    },
    "additionalProperties": false
  },
  "AddressDetails": {
    "description": "AnAddressDetailsfollowingtheconventionofhttp: //microformats.org/wiki/hcard",
    "type": "object",
    "properties": {
        "post-office-box": {
            "type": "string"
        },
        "post-office-address": {
            "type": "string"
        }
    }
  }
}

上面的架构是有效的架构,但没有创建任何内容。我不知道如果我错过了某些东西,或者使用 jsonschema2pojo ,那是不可能的。

还有一种方法可以在运行时生成这些实体吗?

如果有人对此有任何想法,请分享。

3 个答案:

答案 0 :(得分:0)

解决方案是将这些文件拆分为单独的文件,或者从另一个文件中引用这些模式,如:

{"$ref" : "schemas/myfile.json#AddressDetails"}

感谢名单。

答案 1 :(得分:0)

通过让jsonschema2pojo生成一个外部"垃圾"我为此做了一些丑陋的解决方法。对象,其中包含

"$schema": "http://json-schema.org/draft-04/schema#",
"description":"Do not use outer object, it's merely a schema wrapper for the inner objects.",
"id":"http://some-path",
"type":"object",
"properties": {
<all your objects go here>
}

...它将为您留下一个垃圾对象,但让您在一个架构中定义所有对象。我也非常喜欢更清洁的解决方案。

答案 2 :(得分:0)

我使用了this网站,我可以从单个JSON文件生成多个POJO。他们还有ZIP选项,可以一次下载所有文件。