Java中Json转pojo及处理json的几个插件
1. 前言
作为一名 Java 后端程序员经常会有封装一些调用第三方接口的实际需求。比如胖哥最近对微信支付 V3 的封装。
大家都明白第三方接口的 参数 和 返回值 都是提供方定义好的,我们封装时需要生成自己的 POJO 类。这种工作没有技术含量不说,还耗时耗力。就拿微信支付新出的商家券参数来举例:
{
"stock_name":"8月1日活动券",
"belong_merchant":"10000098",
"comment": "活动使用",
"goods_name": "填写代金券可适用的商品或服务",
"stock_type": "NORMAL",
"coupon_use_rule": {
"coupon_available_time": {
"available_begin_time": "2015-05-20T13:29:35+08:00",
"available_end_time": "2015-05-20T13:29:35+08:00",
"available_day_after_receive": 3,
"wait_days_after_receive":7,
"available_week": {
"week_day": [
"available_day_time": [
"begin_time": 3600,
"end_time": 86399
"irregulary_avaliable_time": [
"begin_time": "2015-05-20T13:29:35+08:00",
"end_time": "2015-05-20T13:29:35+08:00"
"fixed_normal_coupon": {
"discount_amount": 5,
"transaction_minimum": 100
"discount_coupon": {
"discount_percent": 88,
"transaction_minimum":100
"exchange_coupon":{
"exchange_price":100,
"transaction_minimum":100
"use_method": "OFF_LINE",
"mini_programs_appid":"wx23232232323",
"mini_programs_path":"/path/index/index"
"stock_send_rule": {
"max_coupons": 100,
"max_coupons_per_user": 5,
"max_coupons_by_day": 100,
"natural_person_limit": "false",
"prevent_api_abuse": "false",
"transferable": "false",
"shareable": "false"
"out_request_no": "100002322019090134234sfdf",
"custom_entrance": {
"mini_programs_info": {
"mini_programs_appid": "wx234545656765876",
"mini_programs_path": "/path/index/index",
"entrance_words": "欢迎选购",
"guiding_words": "获取更多优惠"
"appid": "wx324345hgfhfghfg",
"hall_id": "233455656",
"store_id": "233554655"
"display_pattern_info": {
"description": "xxx门店可用",
"merchant_logo_url": "https://xxx",
"merchant_name": "微信支付",
"background_color": "xxxxx",
"coupon_image_url": "图片cdn地址"
"coupon_code_mode": "WECHATPAY_MODE"
}
是不是又臭又长?严重降低了写代码的乐趣,胖哥在手写了几个后都有放弃的冲动了。
2. JSON 转 POJO 工具
我需要搞一个 JSON 转 POJO 工具来干这个活。我就在网上找了找,终于找到了一款可以将 JSON 转换为 POJO 的 IDE 插件。我在 Intellij IDEA 的插件市场中尝试了好几种提供该功能的插件后,一款名叫 RoboPOJOGenerator 的转换工具最终被选中,确实用着不错,减少了这种重复、无聊的劳动,今天就分享给大家。
3. RoboPOJOGenerator
RoboPOJOGenerator 是一款 JSON 转成 POJO 的 IDEA 插件,它支持将 JSON 转换为 Java 或者 Kotlin 两种语言的 POJO。同时它还支持 GSON, FastJSON, AutoValue (GSON), Logan Square, Jackson 这些 JSON 框架,方便你序列化和反序列化。
演示
操作界面说明
对应生成的类是这样的:
package cn.felord.payment.wechat.v3.model.busifavor;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Felord{
@JsonProperty("name")
private String name;
@JsonProperty("blog")
private String blog;
}
这只是一个简单的演示,你自己可以找个复杂的例子试试。
JSON 是一种数据格式,具有多种数据类型,例如字符串、布尔值、列表、数字、对象等......它是用于服务之间交互的流行、最简单和轻量级的格式之一。在这篇博文中,我将列出 10 种 JSON 工具,它们有助于以更好、更简单的方式改进解析、格式化和可视化 JSON。
4、JSON 格式化程序
JsonFormatter功能:
- 格式化/美化JSON
- 验证 JSON
- 缩小 JSON
- 将 JSON 转换为 XML、YAML、CSV
5、JSONLint
JSONLint是 JSON 的验证器和重新格式化程序。我们可以复制和粘贴,也可以直接在编辑器中输入 URL,让 JSONLint 验证我们凌乱的 JSON 代码。
6、JSONView Chrome 插件
JSONView是一个 Chrome 插件,它提供 JSON 支持、语法高亮、可折叠树、缩进指南、可点击 URL、在原始和解析的 JSON 之间切换等功能。
7、JSON 转 POJO
JSON2CSHARP是另一个很酷的在线工具,可帮助将 JSON 转换为 C# 或 Java 类。这个工具可以大大节省您生成类以映射和解析 JSON 字段的时间。
8、任何编程语言中的 JSON 到 POJO
Quicktype是另一个出色的在线工具,可帮助将 JSON 转换为以下任何一种编程语言中的类/结构。它支持
- go
- java
- Python
- Ruby
- Swift
- Objective-C 等等...
9、JSON Pretty Printer
JSON Pretty Printer实用程序以清晰的缩进格式打印 JSON 数据。它为习惯于命令行的人提供了最大的好处。该工具对于构建或使用基于 JSON 的 API 的开发人员非常有用。
curl http://api.plos.org/search\?q\=title:%22Drosophila%22%20and%20body:%22RNA%22\&fl\=id\&start\=1\&rows\=3 | json_pp
响应看起来像
{
"response" : {
"numFound" : 1400,
"docs" : [
"id" : "10.1371/journal.pone.0188133"
"id" : "10.1371/journal.pbio.1000320"