您的位置:首页 > 编程语言 > Java开发

使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

2017-05-13 22:57 609 查看

根据JSON文件自动生成Java POJO类(Java Bean)源文件

本文介绍使用程序
jsonschema2pojo
来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考官方文档。

jsonschema2pojo 基本介绍

jsonschema2pojo是一款用于根据JSON文件生成Java POJO类的工具,主要特性:

支持ant,maven,gradle,命令行和直接的程序调用五种方式来进行java源代码的生成。

它可以通过指定JSON模式(schema)和直接指定JSON文件两种形式来生成Java类,并可以配置生成Jackson1、Jackson2、Gson三个库(对字段)的注解,当然也可以配置不生成注解。

它还可以通过指定字段中的分隔符将如
string_number
的json字段名转换为驼峰命名的java字段
stringNumber


还有其他的一些配置。

这款工具可以说非常强大,可以应付我们大部分的需求了。

该工具提供了一个在线网站,可以通过该网站体验一下:链接

配置

先要在maven项目的
pom.xml
文件中添加
common-lang
的依赖:

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>

然后在maven项目的
pom.xml
文件中的
plugins
节点下添加一个插件:

<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.4.34</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources</sourceDirectory>
<targetPackage>com.demo.bean</targetPackage>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<addCompileSourceRoot>false</addCompileSourceRoot>
<sourceType>json</sourceType>
<annotationStyle>none</annotationStyle>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>

说明:

主要关注configuration节点下面的配置项:

sourceDirectory
:json文件所在的目录,会将该目录下所有json进行转换,不支持指定单个文件,如果不想全部转换,可以添加一个
excludes
节点。如:

<excludes>
<exclude>init.json</exclude>
</excludes>


targetPackage
:生成的Java pojo类目标包名。

outputDirectory
:生成Java pojo类的(根)目录,换句话说,源文件最终目录为此目录+包目录,注意,此值默认为
target\java-gen
,官方配置中并没有该默认值,如果成功生成后发现找不到源文件,看一看是不是这个原因。

addCompileSourceRoot
:是否将输出目录作为项目的源码根目录。

sourceType
:json格式,两个可选值,
jsonschema
:json模式和
json
:json文件,默认为
jsonschema,不过我们一般是希望直接使用json文件生成,所以指定为
json`。

annotationStyle
:生成的(字段)注解样式,有五个可选值:
jackson1
jackson2
gson
moshi1
none
,默认是
jackson2
,一般指定
none
就可以了,还有比如用
fastjson
,那也要指定
none


生成

直接执行
mvn package
打包命令就可以进行生成操作了,执行成功后你会在对应的包下面发现生成的java pojo源文件。

说明

已知的问题:

该程序会对所有的json对象(
{}
包起来的)都进行java文件的生成,暂时没发现可以进行选择性生成的配置。

参考链接:

github主页

在线体验网址

maven配置文档网址

如有错误,请留言指正,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐