使用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配置文档网址
如有错误,请留言指正,谢谢。
相关文章推荐
- 使用jsonschema2pojo根据JSON文件自动生成Java POJO类(Java Bean)源文件
- 使用Hibernate-tools中的hbm2java和hbm2ddl根据hbm文件自动生成pojo和数据库脚本
- 使用Hibernate-tools中的hbm2java和hbm2ddl根据hbm文件自动生成pojo和数据库脚本
- 使用Hibernate-tools中的hbm2java和hbm2ddl根据hbm文件自动生成pojo和数据库脚本
- 使用Hibernate-tools中的hbm2java和hbm2ddl根据hbm文件自动生成pojo和数据库脚本
- 使用Hibernate-tools中的hbm2java和hbm2ddl根据hbm文件自动生成pojo和数据库脚本
- 在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,根据hbm文件自动生成pojo和数据库脚本
- Maven项目中,使用mybatis,根据数据库自动生成pojo实体类、dao、mapper
- android(安卓)开源框架 使用在线工具jsonschema2pojo根据json生成java对象
- 使用log4j生成动态日志文件-文件名根据时间自动生成
- eclipse中的Java文件自动根据svn版本号生成注释
- 使用javah自动生成JNI的.h文件
- hbm2java 根据映射文件生成POJO的一个常见问题
- 使用自动生成java文件和自动编译的静态代理模式-马士兵设计模式教程
- android使用ant自动打包(更改java文件中的属性值,批量自动生成)
- 使用hibernate自动生成实体类时同时出现两个.java文件
- 使用自动生成java文件和自动编译的动态代理模式
- eclipse中的Java文件自动根据svn版本号生成注释
- 根据测试用例的java源码自动生成TestNG的XML文件
- 使用CXF根据wsdl地址自动生成客户端 (java)