根据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的依赖:

commons-lang

commons-lang

2.6

然后在maven项目的pom.xml文件中的plugins节点下添加一个插件:

org.jsonschema2pojo

jsonschema2pojo-maven-plugin

0.4.34

${basedir}/src/main/resources

com.demo.bean

${basedir}/src/main/java

false

json

none

generate

说明:

主要关注configuration节点下面的配置项:

sourceDirectory:json文件所在的目录,会将该目录下所有json进行转换,不支持指定单个文件,如果不想全部转换,可以添加一个excludes节点。如:

init.json

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文件的生成,暂时没发现可以进行选择性生成的配置。

参考链接:

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

java pojo生成_使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件相关推荐

  1. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  2. python RTL自动生成_成为视频分析专家:自动生成集锦的方法(Python实现)

    概述 以一种简单的方法在Python中生成视频集锦 不使用机器学习或深度学习,学习如何自动生成集锦 使用我们自己的方法,对一场完整的板球比赛自动生成集锦 介绍 我是个超级板球迷.从我记事起,我就迷上了 ...

  3. java socket 银行_【支付-华夏银行】对接前置机Socket核心类-java

    1.通讯流程 1.直联客户的软件程序(简称ERP)发送报文到直联前置机 2.前置机将接收的到的报文签名整合,再转发到银行服务器 3.返回报文到前置机,最终返回到ERP 4.注意:使用gbk编码 2.核 ...

  4. Maven的META-INF文件的生成

    Maven的META-INF文件的生成 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> & ...

  5. [torchtext]如何利用torchtext读取json文件并生成batch

    如何利用torchtext读取json文件并生成batch 设置Field 使用torchtext.data.Tabulardataset.splits读取文件 构建vocab表 使用torchtex ...

  6. lin通信ldf文件解析_基于LIN协议的代码自动生成系统及方法_2014108531085_说明书_专利查询_专利网_钻瓜专利网...

    技术领域 本发明属于汽车电子LIN网络通讯领域,公开了一种利用LDF文件自动生成LIN通讯软件代码的方法. 背景技术 目前汽车电子产品的软件开发逐渐向模块化.标准化.集成化.自动化发展.LIN通讯模块 ...

  7. lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc

    基于AutoCAD VBA增减挂钩报备坐标文件自动生成 基于AutoCAD VBA增减挂钩报备坐标文件自动生成 摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间.如果利用VBA对 ...

  8. linux设备文件生成,Linux设备文件自动生成(示例代码)

    第一种是使用mknod手工创建:# mknod 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置. 具体udev相关 ...

  9. PNG字幕文件自动生成工具

    最近在PR中做视频需要加字幕,虽然有很多字幕工具,但是个人不喜欢用. 用PS做大段的文字又太费时,所以写了一个字幕文件自动生成工具,其实就是自动批量输出透明的PNG文件.

  10. 文件夹文件自动生成目录的方法-保存到txt

    文件夹文件自动生成目录的方法-保存到txt 1.打开记事本: 2.复制以下内容: @echo off     dir /b /on >list.txt 3.另存为bat,类型ANSI

最新文章

  1. java 必须存在默认构造器_Java默认构造方法在字节码的实现
  2. USTC服务器使用笔记
  3. 小米手机qq不读取相册照片_小米手机越用越卡怎么办?
  4. java写大文件_java实现超大文件的读写功能
  5. Linux C高级编程——网络编程之UDP(4)
  6. 限制ul显示高度_led显示屏钢结构吊装方案原则及适用条件
  7. python 重定向到其他cmd_python 如何重定向到另一个终端?
  8. 关于Win32 DialogBox的一些收获
  9. 来咯来咯~你想要的unity3d人物游戏模型素材都在这里
  10. 一:细说python3中sort和sorted
  11. 群晖邮箱服务器需要什么证书,群晖NAS邮件通知及两步验证登录详解
  12. 获取星期--蔡勒公式
  13. Java使用Scanner与random实现骰子游戏
  14. html5 驾考 答题样式,考驾照答题软件
  15. 腾讯 2020年新增 20 亿行代码,C++蝉联腾讯最受欢迎的编程语言
  16. Android 恢复出厂设置上层流程
  17. Holder不等式的证明
  18. Broadcom博通 EDI 成功案例
  19. 报错 System.ComponentModel.Win32Exception:拒绝访问,如何以管理员身份调试应用程序...
  20. 数据库关系代数--菜鸟简易小结

热门文章

  1. 可视对讲行业洗牌进行时 企业应该何去何从?
  2. 【嗅探工具】wireshark初步认识
  3. 台湾-李宏毅教授的深度学习视频教程
  4. 服务器内存只支持双路主板,壕到没朋友,支持双路18核CPU、16条内存、3路显卡的主板来了...
  5. 传感器 动态误差计算
  6. java ftps 证书_FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择
  7. 单位元转换万元怎么转_元换算万元单位(元与万元的换算器)
  8. 冲突域和广播域,中继器、集线器、网桥、交换机、路由器和网关
  9. 什么是二叉平衡树,如何插入节点,删除节点,说出关键步骤。
  10. 兴业银行银企直联如何查询转账支付后的手续费及退票流水