• 使用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类的(根)目录,换句话说,源文件最终目录为此目录+包目录,注意,此值默认为targetjava-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配置文档网址

    如有错误,请留言指正,谢谢。

  • 相关阅读:
    绑定对象
    类与对象
    视音频技术干货专栏
    sqlite3把字段为int32(用c++的time(nullptr)获取的)的秒数显示为年月日时分秒
    微信小程序开发 --- 小白之路 --- 心得
    spring cloud --- config 配置中心 [本地、git获取配置文件]
    spring cloud --- Zuul --- 心得
    spring boot --- 注解 @Bean 和@Component
    spring cloud --- Feign --- 心得
    spring cloud --- Ribbon 客户端负载均衡 + RestTemplate + Hystrix 熔断器 [服务保护] ---心得
  • 原文地址:https://www.cnblogs.com/xyb930826/p/6850758.html
Copyright © 2020-2023  润新知