程序地带

在SpringBoot项目使用Gson插件轻松解析Json格式数据


前言:

json解析是指将以{ }包裹的JSON对象解析成我们想要的数据,方便我们调用。java中可以用JSONObject或JSONArray类来实现,但其实有一种更方便的方式,就是使用Gson解析。Gson解析可以将json数据解析成一个实体类,之后我们便可以调用该实体类很轻松的拿到自己想要的数据。


1.先在idea的插件库中安装“GsonFormatPlus”插件

file→Settings进入设置页面 在这里插入图片描述 在设置页面中找到“Plugins”,并在搜索框中搜索“GsonFormatPlus”后点击“install”。当我们点击安装后,绿色按钮将会变成灰色,如下所示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201117225903543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQwMzc0Ng==,size_16,color_FFFFFF,t_70#pic_center 安装完成插件后我们需要重启“idea”,直接在“file”中找到“Invalidate Caches/Restart”点击即可 在这里插入图片描述


2.使用插件创建对应的实体类

先创建一个实体类的java类,以下面的json数据为例,先复制需要创建成实体的json数据。


{
"SendStatusSet": [{
"SerialNo": "",
"PhoneNumber": "+86167XXXXXXXX",
"Fee": 0,
"SessionContext": "",
"Code": "LimitExceeded.PhoneNumberOneHourLimit",
"Message": "the number of sms messages sent from a single mobile number within 1 hour exceeds the upper limit",
"IsoCode": "CN"
}],
"RequestId": "2543370b-6c30-486d-bad0-856e9c20e41b"
}

选中实体类,右击选择“Generate…”,在弹出的选项中选择刚刚添加的插件“GsonFormatPlus” 在这里插入图片描述 在这里插入图片描述 以上步骤也可以直接使用快捷键“alt+s”. 将json数据复制进去后点击右下角“OK”,在弹出来的弹框中就可以看到json数据解析成实体类后的对应变量和层级关系,不想要的可以取消勾选。选择后点击ok 在这里插入图片描述 在这里插入图片描述 此时的json数据已经变成了一个实体。 在这里插入图片描述


3.取出实体中的数据

此时最重要的就是取得我们想要的数据,要取得之前就需要先放入数据。 实例化一个Gson类,调用该类中的fromJson方法,将json数据放入,并对应设置好实体类。


String str="上面的json数据";
Gson gson=new Gson();
TestEntity testEntity=gson.fromJson(str, TestEntity.class);

在这里插入图片描述 最后,通过调用实体类中的封装方法对应调出数据即可。加入我们需要获得“Message”所需要对应的值数据,那么用法为:


testEntity.getSendStatusSet().get(0).getMessage()

得到的数据为:


the number of sms messages sent from a single mobile number within 1 hour exceeds the upper limit

至此,在SpringBoot项目中使用Gson解析json数据就完成了。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43403746/article/details/109757285

随机推荐

Python中使用%s和format传参的快速讲解

Python中有两种快速传参的办法,%s和format,可以在不打断原文结构的情况下传入参数.以VBA为例,有些代码里面是会打断原文来传参数连接文本的,参数很多就很难看,例如我要实现下面的效果今天的日...

但老师 阅读(411)

OSS中有Access denied by authorizer‘s policy

使用STS临时授权OSS进行上传、下载等操作时,涉及到如下报错的排查方法。ErrorCode:AccessDeniedErrorMessage:Accessdeniedbyauthori...

MCFG 阅读(699)

3.C++搭配PCL精简点云

精简点云本专栏所有内容都是基于visualstudio2017平台,c++语言,第三方库PCL1.8所进行实验的。点云数据为斯坦福大学公共点云库bunny点云。本专栏所写内容均为手打,代码均为精简过的...

尚在幼年的程序猿 阅读(890)

信息化消防应急指挥调度如何实现高效救援?

一、信息化技术应用的必要性伴随着社会经济的高速增长,我国城市化建设的种类和数量也在不断增加。与之相伴的是,居住人口的日益密集、各类燃烧物性质日趋复杂,建设结构...

weikes13 阅读(107)

基于L297A 大功率设计的步进电机驱动器

概述:步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步距角)...

wsq_666 阅读(620)

13-统计数字出现的次数

输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束。#include<stdio.h>intmain(){intx;inti;i...

人山人海边走边爱 阅读(926)