使用maven根據JSON文件自動生成Java POJO類(Java Bean)源文件


根據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:生成的(字段)注解樣式,有五個可選值:jackson1jackson2gsonmoshi1none,默認是jackson2,一般指定none就可以了,還有比如用fastjson,那也要指定none

生成

直接執行mvn package打包命令就可以進行生成操作了,執行成功后你會在對應的包下面發現生成的java pojo源文件。

說明

已知的問題:

  1. 該程序會對所有的json對象({}包起來的)都進行java文件的生成,暫時沒發現可以進行選擇性生成的配置。

參考鏈接:

  1. github主頁
  2. 在線體驗網址
  3. maven配置文檔網址

如有錯誤,請留言指正,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM