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

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

本文介紹使用程序jsonschema2pojo來自動生成Java的POJO類源文件,本文主要使用maven,其餘構建工具請參考官方文檔。html

jsonschema2pojo 基本介紹

jsonschema2pojo是一款用於根據JSON文件生成Java POJO類的工具,主要特性:java

  • 支持ant,maven,gradle,命令行和直接的程序調用五種方式來進行java源代碼的生成。
  • 它能夠經過指定JSON模式(schema)和直接指定JSON文件兩種形式來生成Java類,並能夠配置生成Jackson一、Jackson二、Gson三個庫(對字段)的註解,固然也能夠配置不生成註解。
  • 它還能夠經過指定字段中的分隔符將如string_number的json字段名轉換爲駝峯命名的java字段stringNumber
  • 還有其餘的一些配置。

這款工具能夠說很是強大,能夠應付咱們大部分的需求了。git

該工具提供了一個在線網站,能夠經過該網站體驗一下:連接github

配置

先要在maven項目的pom.xml文件中添加common-lang的依賴:json

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

而後在maven項目的pom.xml文件中的plugins節點下添加一個插件:maven

<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源文件。gradle

說明

已知的問題:網站

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

參考連接:

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

若有錯誤,請留言指正,謝謝。插件

相關文章
相關標籤/搜索