前面我们介绍了 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,