根據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文件的生成,暫時沒發現可以進行選擇性生成的配置。
參考鏈接:
如有錯誤,請留言指正,謝謝。