【问题标题】:Generate java interfaces from JSON Schema从 JSON Schema 生成 java 接口
【发布时间】:2014-01-17 05:31:43
【问题描述】:

我正在寻找在 java 中使用 JSON Schema 的工具。

主要要求是接口生成。我想从解析器 API 获取接口,并为序列化器 API 提供我自己的实现。主要目的是通过JsonPropertyJsonIgnore等注解避免bean污染。

有许多工具可以从 JSON Schema 生成 java bean(类)。 Jackson 有一个功能 @JsonSerialize(as=MyInterface.class),但我找不到任何工具来从模式生成接口。

【问题讨论】:

标签: java json jackson jsonschema


【解决方案1】:

我从未使用过它,但http://www.jsonschema2pojo.org/ 有帮助吗?看来你甚至可以use it from within Java

【讨论】:

  • 我未能通过本地取消引用来编写样本。我正在使用的验证器 (json-schema-validator) 支持本地引用,例如“$ref”:“#/definitions/bar”。 jsonschema2pojo 失败并出现错误“URI 不是绝对的”。
  • 啊,好的。这显然是一个失败 - 可能会在 jsonschema2pojo 项目上引发错误?
  • 我已经测试了java api——它运行良好。不幸的是,它只支持模式draft-03。最新的架构版本不同(allOf、oneOf 而不是 extends 关键字)。验证对我来说比代码生成更重要。所以我将使用 draft-04 和 json-schema-validator。
【解决方案2】:

让我向您展示如何开发该工具。您可以这样做:

  1. 用户javascript函数Json.parse(),将字符串like-json转成js对象
  2. 然后使用此对象生成 javabean 格式。
  3. 有些东西,你应该关心。(1)值类型映射,例如,如何找出字符串,是日期类型。(2)loweser_case to camelCase

我开发了一个工具来解决这个问题。它设计得很好,而且速度更快。 从我的github 获取代码。

从这里享受它,我已经将它部署在webserver

我尝试前 2 个答案的建议。一个网页无法打开。一个比我的工具慢。希望你会喜欢我的工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2022-01-17
    • 2015-03-07
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多