Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)

2023-12-16

场景

若依前后端分离版手把手教你本地搭建环境并运行项目:

若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行-CSDN博客

在上面搭建SpringBoot项目的基础上,并且在项目中引入fastjson、hutool、lombok等所需依赖后。

系统需要对接第三方http接口获取返回的数据,并将json数据解析为实体类进行后续的业务处理。

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

实现

1、使用接口mock工具模拟出一个http的接口,比如使用apifox

比如这里接口返回的数据为

{
  "code": "200",
  "data": [
    {
      "id": "38",
      "name": "成生认两",
      "time_cur": "1984-01-29 17:55:39",
      "地址": "mollit"
    },
    {
      "id": "61",
      "name": "质立红几算往值",
      "time_cur": "2013-01-27 06:38:34",
      "地址": "est enim"
    },
    {
      "id": "53",
      "name": "办单正决风放",
      "time_cur": "2008-10-18 14:00:37",
      "地址": "ex commodo nisi"
    },
    {
      "id": "54",
      "name": "角件二心任眼",
      "time_cur": "1978-11-14 10:13:04",
      "地址": "nisi exercitation quis voluptate"
    }
  ]
}

然后进行mock,效果为

2、这里发起http客户端请求使用hutool的HttpUtil

上面的接口中故意加了一个字段为中文名“地址”,因为第三方系统返回接口数据如此,其它字段均与接口中返回字段对应即可。

然后接口中返回的时间字段为字符串,这里在新建实体类时使用

  @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")

注解即可将时间字符串解析成Date属性字段。

3、新建接口数据响应DTO,用来接受接口响应并判断code字段等

import com.alibaba.fastjson.JSONArray;
import lombok.Data;
import java.io.Serializable;

@Data
public class UserResDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 响应编码
     */
    private Integer code;
    /**
     * 数据
     */
    private JSONArray data;
}

这里接口数据返回为data字段,所以新建JSONArray 类型接收。

然后需要将data字段中的数据解析成对象的list。

新建UserDTO用来解析需要的数据

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;

@Data
public class UserDTO {
    private String id;
    private String name;
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private Date time_cur;
    private String 地址;
    private String remark;
}

4、新建测试类

调用JSONArray的toJavaList方法将数据解析为java的list对象

​
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.test.dto.UserDTO;
import com.ruoyi.system.domain.test.dto.UserResDTO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiApplication.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FastJsonTest {

    @Test
    public void getUserData() {
        String body = "";
        try {
            body = HttpRequest
                    .get("http://127.0.0.1:4523/m1/2858210-0-default/testFastJson")
                    .timeout(20000)
                    .execute()
                    .body();
            UserResDTO userResDTO = JSON.parseObject(body, UserResDTO.class);
            if (userResDTO.getCode() != null && 200!=userResDTO.getCode()) {
                //错误处理
            }else {
                JSONArray data = userResDTO.getData();
                if (StringUtils.isEmpty(data)) {
                    return;
                }
                List<UserDTO> userDTOS = data.toJavaList(UserDTO.class);
                System.out.println(userDTOS.toString());
            }
        } catch (Exception e) {

        }
    }
}

​

运行单元测试,查看解析结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文) 的相关文章

随机推荐

  • 用RPA实现高效批量下载图片,轻松解决繁琐操作!

    在电商行业中 高质量的商品图片是吸引客户的重要因素之一 然而 传统的下载方式需要逐个点击商品链接并手动保存图片 费时费力且容易出错 为了解决这个问题 八爪鱼抓取淘宝商品图片rpa机器人应运而生 它可以模拟人在电脑上的操作 根据用户的配置自动
  • Mysql表的数据类型

    数据类型 https www sjkjc com mysql varchar MySQL 中的数据类型包括以下几个大类 字符串类型 数字类型 日期和时间类型 二进制类型 地理位置数据类型 JSON 数据类型 MySQL 字符串数据类型 VA
  • 用RPA轻松实现亚马逊商品评论数据采集!

    在电商行业中 一个常见的问题是商家需要获取大量的商品评论数据来了解用户对产品的评价和反馈 以便进行产品改进和运营决策 然而 手动采集这些数据非常耗时耗力 尤其是在亚马逊这样的大平台上 评论数据量巨大且分散 无法通过开放接口一次性获取 针对这
  • 技术立身,进阶Android,成为行业领跑者!

    背景 工作2 3年后 许多人会进入一种迷茫的状态 感觉自己已经掌握了当前工作的所有基本技能 似乎失去了前进的动力 这种迷茫源于对当前职业阶段的认识不足 我个人也经历过这个阶段 深感Android开发似乎已经没有新挑战了 甚至有时会感到这个行
  • 客户案例|长安汽车金融:借助一体化智能可观测平台 Bonree ONE,提升智能告警收敛能力

    在当前数字化和智能化的大潮中 长安汽车金融以科技创新为引领 制定数字化转型战略 加强顶层设计和统筹规划 加大大数据 云计算及人工智能等新一代信息技术的应用 坚持 数据 技术 场景 融合 深入挖掘数据价值 全面提升数据服务能力 实现业务运营智
  • LinuxC中进程通信

    LinuxC中进程通信 信号 Signals Linux 提供了信号机制 允许一个进程向另一个进程发送信号以通知特定事件的发生 这是一种轻量级的通信机制 通常用于处理异步事件 您可以使用 kill 命令或 kill 函数来发送信号 然后使用
  • 如何用RPA实现天猫淘宝商品转Fordeal上架

    天猫淘宝商品转fordeal上架是一项常见的任务 需要手动操作来完成 然而 有了八爪鱼rpa 这个繁琐的过程可以变得轻松简单 首先 使用八爪鱼rpa 您只需要设定好规则和参数 然后启动机器人即可 机器人会自动登录您的天猫淘宝账号 并进入商品
  • 淘宝卖家订单金额核对,RPA机器人帮你搞定!

    在跨境电商行业中 淘宝卖家订单金额核对是一项重要的工作任务 传统的人工操作方式存在效率低下 易出错等问题 无法满足行业的快速发展需求 为了解决这些问题 八爪鱼rpa机器人应运而生 首先 让我们来看一下八爪鱼rpa在解决淘宝卖家订单金额核对问
  • SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用

    场景 定时任务中需要获取数据库中数据进行数据转换成需要的格式并进行后续的业务处理 数据库中的数据更新频率不高 可将数据库中数据在项目启动后读取一遍数据 然后再通过定时任务定时查询数据库更新数据 实现数据库缓存的方式有多种 比如以下 Spri
  • Java队列--LinkedBlockingQueue

    参考来源 https juejin cn post 7000515796053000228 Java队列 LinkedBlockingQueue LinkedBlockingQueue是基于单向链表的阻塞队列 先进先出的顺序 支持多线程并发
  • 功能有更新 | Bonree ONE 权限版本新增环境、资源域、角色概念

    近期 博睿数据根据一体化智能可观测平台 Bonree ONE 产品本身 以及用户反馈进行持续的更新和优化 继第01期 RUM 增强 APP 端快照配置全量会话回放与自定义协议网络请求采集功能之后 以下为 Bonree ONE 产品功能更新报
  • Linux查看进程

    文章目录 查看进程 top命令 pstree命令 查看进程 1 ps命令 用于显示当前系统中正在运行的进程列表 例如 ps aux 查看系统所有进程 ps aux命令展示的各字段含义如下 USER 进程的用户 PID 进程ID CPU 进程
  • net::ERR_CERT_AUTHORITY_INVALID

    接口请求报错 net ERR CERT AUTHORITY INVALID 浏览器遇到这种不安全的证书会自动拦截 导致数据无法获取 问题分析 翻译一下 其实从字面意思就可以指定报错原因了 https的ssl证书有问题 解决办法 临时解决办法
  • harbor企业级私有仓库

    一 私有仓库的部署 实验环境 删除之前的registry容器 并下载harbor二进制程序和压缩包 官网地址 https github com 部署步骤 1 下载压缩包和脚本并解开压缩包并进入harbor目录并复制模板文件 系统读的是yml
  • SNMP的配置

    SNMP的配置与日志 SNMP 配置文件 大多数系统上的 SNMP 配置信息存储在配置文件中 通常 SNMP 的主要配置文件是 etc snmp snmpd conf 或 etc snmp snmpd conf 你可以使用文本编辑器查看这些
  • go-zero 开发之安装 goctl 及 go-zero 开发依赖

    安装 goctl go 版本在 1 16 及以后执行 GO111MODULE on go install github com zeromicro go zero tools goctl latest go 版本在 1 16 之前执行 GO
  • 用RPA轻松实现天猫物流-延迟报备-紧急报备,提升处理效率!

    商业活动中的物流管理的重要性不言而喻 及时准确的物流信息可以提高客户满意度 增加用户粘性 促进二次购买和口碑传播 同时 高效的物流管理也可以减少商家的成本和风险 提高运营效率和竞争力 在天猫物流管理中 延迟报备指的是订单的物流信息没有及时更
  • Docker仓库详解及搭建

    一 Docker仓库是什么 二 Registry工作原理 Pull Image 用户端向index发送请求 index会返回一个location和token 用户端根据返回的token向registry发起请求 registry会校验一笑t
  • 解放双手!拼多多商家最新秘密武器,微信端批量私信rpa机器人来袭!

    在拼多多开店的卖家们都知道 拼多多商家在进行拓客引流工作时 需要频繁进行微信端私信发送操作 耗费大量时间和精力 为了解决这一问题 商家希望可以通过rpa机器人来自动完成私信发送操作 保证每一笔订单都能做好全面的维护和管理 八爪鱼rpa作为一
  • Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目 若依前后端分离版手把手教你本地搭建环境并运行项目 前后端分离项目本地运行 CSDN博客 在上面搭建SpringBoot项目的基础上 并且在项目中引入fastjson hutool lo