前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSON转Java POJO就是这么简单快捷

JSON转Java POJO就是这么简单快捷

作者头像
码农小胖哥
发布2021-02-01 14:47:21
1.4K0
发布2021-02-01 14:47:21
举报
1. 前言

作为一名 Java 后端程序员经常会有封装一些调用第三方接口的实际需求。比如胖哥最近对微信支付 V3 的封装。

❝https://github.com/NotFound403/payment-spring-boot 欢迎 star 哦。

大家都明白第三方接口的参数返回值都是提供方定义好的,我们封装时需要生成自己的POJO类。这种工作没有技术含量不说,还耗时耗力。就拿微信支付新出的商家券参数来举例:

代码语言:javascript
复制
{
  "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": [
          1,
          2
        ],
        "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 框架,方便你序列化和反序列化。

演示

操作界面说明

对应生成的类是这样的:

代码语言:javascript
复制
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;
}

这只是一个简单的演示,你自己可以找个复杂的例子试试。

3. 总结

有人说不建议使用工具,我认为这是错误的。人类最大的优点就是使用工具。写这些没有实质逻辑的代码并不能提高一个程序员的编码水平。真正能提高水平的是对逻辑过程、逻辑对象的归纳和抽象,如何让逻辑层次化,清晰而有序。好了今天的分享就到这里,我是:码农小胖哥,多多关注,分享更多编程干货。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农小胖哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. JSON 转 POJO 工具
  • 3. RoboPOJOGenerator
  • 3. 总结
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档