java实现jsonscheme_使用 Json Schema 定义 API

本文介绍了如何结合jsonschema2pojo工具利用Json Schema来定义并生成Java API,包括properties、type、additionalProperties、items、required、uniqueItems、enum、default、title、description、format、extends、$ref等关键字的使用方法。
摘要由CSDN通过智能技术生成

前面我们介绍了 Json Schema 的基本内容,这篇文章我们结合 jsonschema2pojo 工具深入分析如何使用 Json Schema 生成 API,学习更多关于 Json Schema 的关键字等知识。

jsonschema2pojo 该库提供了多种使用Json Schame文件生成 Java 类的方法,比如 Maven插件, Gradle插件, Ant任务, 以及直接使用命令行,甚至还可以在代码中直接使用,具体参照 jsonschema2pojo Getting Started

这里我直接采用 Mac 命令行的方式,在 Mac 下安装此命令的方式比较简单,直接运行 brew install jsonschema2pojo 安装即可。

properties

在一个类中,最关键的就是属性了,每个类都可能有多个属性,在 Json Schema 中就是通过 properties 来定义类的属性的, properties 中的每个条目都是所定义类的一个属性。

比如,对于此 Json Schema MyObject.json:

{

"type" : "object",

"properties" : {

"foo" : {

"type" : "string"

}

}

}

我们执行 jsonschema2pojo 任务后,可以生成对应的 Java 类:

public class MyObject {

private String foo;

public String getFoo() {

return foo;

}

public void setFoo(String foo) {

this.foo = foo;

}

}

type

像我们 Java 中有多种类型,那不同的类型在 Json Schema 中如何表示呢?一般通用的转换如下所示,这也是 jsonschema2pojo 工具默认使用的转换方式:

Schema Type | Java Type

:-: | :-:

string | java.lang.String

number | java.lang.Double

integer| java.lang.Integer

boolean| java.lang.Boolean

object | 自己生成的类

array | java.util.List

array(with “uniqueItems”:true)|java.util.Set

null | java.lang.object

any | java.lang.object

值的注意的是,如果我们增加了 usePrimitives 选项,对于 Integer, Double, Boolean 这三个包装类将会转换成基本类型 int, double, boolean。

additionalProperties

我们平时开发中,为了类利于扩展,有时会给类增加一个Map类型的属性,这样当外部需要传更多的参数给我们时,不需要更改API,直接将参数放到这个 Map 里就可以快速

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值