Json Schema 及 JsonSchema2pojo ma

2020-04-02  本文已影响0人  coderrrrrrrrr

Json Schema

Json Schema是一种json定义格式,允许你自己定义json的注释和验证json文本。

Json Schema

Json schema 格式

参照 https://blog.csdn.net/silence_xiao/article/details/81303935

官网 http://json-schema.org/understanding-json-schema/basics.html

JsonSchema2pojo

使用Json Schema生成POJO(Plain Ordinary Java Object 简单的Java对象)的插件。

The Maven plugin

配置方法:

        <plugins>
            <plugin>
                <groupId>org.jsonschema2pojo</groupId>
                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                    <targetPackage>com.example.types</targetPackage>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.5.4</version>
        </dependency>

Maven plugin其他配置

            <plugin>
                <groupId>org.jsonschema2pojo</groupId>
                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                <version>0.4.37</version>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                    <targetPackage>cn.csg.common.vo</targetPackage>
                    <outputDirectory>${basedir}/src/main/java</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

这个配置可以直接生成java文件,在Idea环境编码时,其他项目无需在引用lib指向此项目的classes文件夹,只需要配置对此项目的依赖。

        <plugin>
                <groupId>org.jsonschema2pojo</groupId>
                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                <version>0.4.37</version>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                    <targetPackage>cn.csg.common.vo</targetPackage>
                    <generateBuilders>true</generateBuilders>
                    <outputDirectory>${basedir}/src/main/java</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

设置后,生成builder。这个builder可以简单的在一行初始化一个对象:

MyObject o = new MyObject().withFoo("foo").withBar("bar").withBaz("baz");

其他

关于Schema定义其他特性 https://github.com/joelittlejohn/jsonschema2pojo/wiki/Reference

关于JsonSchema2pojo除Maven的其他插件和使用方法 https://github.com/joelittlejohn/jsonschema2pojo/wiki/Getting-Started#the-maven-plugin

上一篇下一篇

猜你喜欢

热点阅读