Java使用GSON对JSON进行解析——IDEA引入jar包方式

GSON

GSON是Google公司开发的用于解析json的类库。可以很轻松地让程序员将java对象转换成JSON格式,或者将JSON格式的对象转换成Java对象。

使用方法很简单:

首先,需要将GSON类库的jar包引入到自己的IDE中,本教程使用IDEA为例子。

引入依赖即可,本次不引入依赖,学习一下IDEA怎么引入一个jar包。

1.下载GSON的jar包

GSON的github地址:https://github.com/google/gson/

GSON的下载地址:https://search.maven.org/artifact/com.google.code.gson/gson/2.8.6/jar

在下载地址页面中的右上角点击Downloads,并选择jar。

img

等待下载完毕即可。

2.在IDEA中引入GSON的jar包

在IDEA中创建或者打开一个java项目。

然后右键选择自己的项目,选择New,选择Directory。

img

创建完这个文件夹,给它命名为“lib”。

img

然后将刚刚下载好的jar包移动到lib文件夹中。

img

然后选择File,选择Project Structure。

img

弹出的窗口中选择Libraries,选择“+”,选择Java

img

然后找到并选择之前创建好的lib文件夹,选择OK

img

这里选择Cancel

img

可以看到lib文件夹被添加了进来。

img

然后选择左边菜单中的Modules,选择Dependencies分页,选择“+”,选择Library…

img

选择lib,然后Add Selected

img

然后选择OK

img

至此jar包的引用就完成了。

3.测试是否引入成功

创建一个主类,并添加这个包:“com.google.gson.Gson”。如果没有报错,那么就说明引入成功了。

img

4.使用Gson解析JSON字符串

现在准备工作就已经做完了,接下来是如果使用Gson。

对象 -> JSON字符串

如果想将java对象转换为JSON格式,需要使用Gson对象的toJson方法,方法参数传入需要转换的对象,就会返回字符串形式的JSON。

例如:

public class Main {public static void main(String[] args) throws IOException{//创建一个Person对象Person p1 = new Person("小明", 20);//创建匿名的Gson对象,并调用toJson方法,传入的参数是想要转换的对象,返回值是转化完毕的json格式字符串。String json = new Gson().toJson(p1);//打印字符串System.out.println(json);}
}

运行结果:

img

JSON字符串 -> 对象

如果想将JSON字符串转换成java对象,也就是和刚才相反。操作类似,需要使用Gson对象的fromJson的方法,参数1传入需要转换的字符串,参数2传入对象的类型(类名.class)。

public class Main {public static void main(String[] args) throws IOException{//      如果需要转换:  {"name":"小明","age":20}Person p = new Gson().fromJson("{\"name\":\"小明\",\"age\":20}", Person.class);System.out.println(p.getName());System.out.println(p.getAge());}
}

运行结果:

img

另外也可以将Json字符串转换为Map集合,这样就不必为了接受一个JSON对象而写一个类。

例如:

public class Main {    public static void main(String[] args) throws IOException{ //      如果需要转换:  {"name":"小明","age":20}        HashMap map = new Gson().fromJson("{\"name\":\"小明\",\"age\":20}", HashMap.class);        System.out.println("姓名:" + map.get("name"));        System.out.println("年龄:" + map.get("age"));     }}

运行结果:

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查询姓王的信息代码_MySQL查询语句练习题

1.创建student和score表CREATE TABLE student (id INT(10) NOT NULL UNIQUE PRIMARY KEY ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) ,birth YEAR,department VARCHAR(20) ,address VARCHAR(50));创建score表。SQL代码如下:CREATE TABLE score (i…

IoT -- (四) 物联网系统架构介绍

物联网系统框架介绍 下面将谈到几个关键问题: 设备如何接入网络?设备间如何通信?物联网数据的用途?如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?物联网终端软件系统架构?物联网云平台系统…

mysql 删除not null_从MySQL的列中删除NOT NULL限制?

要从MySQL的列中删除NOT NULL限制,请使用ALTER命令。语法如下:ALTER TABLE yourTableName MODIFY COLUMN yourColumnName dataType;为了理解上述语法,让我们创建一个表。创建表的查询如下:mysql> create table NotNullDemo->…

IoT -- (五) IoT都有哪些通信协议

IOT都有哪些通信协议? 在物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。那么,物联网都有哪些通信协议呢? 在物联网协议中,我们一般分为两大类,一类是传输协议&#xff0c…

IoT -- (六) MQTT和CoAP对比分析

IoT物联网需要标准协议,针对小设备最有前景的两种是MQTT和CoAP。 MQTT和CoAP两者均: 开放标准; 比HTTP更适合于受限环境; 提供异步传输机制; 在IP上运行; 有很多种实现 MQTT在传输模式上更为灵活&am…

mysql5.7.19不好用_Mysql 5.7.19 免安装版遇到的坑(收藏)

1、从官网下载64位zip文件。2、把zip解压到一个位置,此位置为安装为安装位置3、如果有以前的mysql 如果是install的,去控制面板卸载,还需要删除以前mysql留下来的残留文件。如果是免安装的,用mysqld -remove命令删除 ,…

IoT -- (八)MQTT优缺点

物联网并不仅仅是一种网络,而是一个新的生态环境,它描述的本质是越来越多的使用物品通过网络连接在一起并可使用单个或者多个的终端设备对它们进行各种控制和使用—当然,工业上的物联网通常连接到的石鼓传感器或者其他数据采集仪器以及行为单…

mysql 平滑扩容_数据库秒级平滑扩容架构方案

一、缘起(1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行:如上图:服务层…

IoT -- (九) IoT通讯技术选型与模型设计

IoT时代的无线通讯技术 “世界上最遥远的距离就是没有网络”,网络通讯是IoT的基础,常见的无线网络通讯技术有:WiFi、NFC、ZigBee、Bluetooth、WWAN(Wireless Wide Area Network,包括GPRS、3G、4G、5G等)、…

SSM中PageHelper的使用步骤与com.github.pagehelper.PageHelper3系列与5系列的区别

SSM中PageHelper的使用步骤 一. 在pom.xml导入依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>二. 交给IOC管理 在SqlSessionFactory…

mysql修改数据库级别_设置数据库兼容级别的两种方法

兼容级别设置为 80 兼容级别设置为 90 影响的可能性对于 FROM 子句中的锁提示&#xff0c;WITH 关键字始终是可选的。但在一些例外情况中&#xff0c;仅当用 WITH 关键字指定表提示时&#xff0c;FROM 子句中才支持这些提示。有关详细信息&#xff0c;请参阅 FROM (Transact-SQ…

Github PageHelper 原理解析

任何服务对数据库的日常操作&#xff0c;都离不开增删改查。如果一次查询的纪录很多&#xff0c;那我们必须采用分页的方式。对于一个Springboot项目&#xff0c;访问和查询MySQL数据库&#xff0c;持久化框架可以使用MyBatis&#xff0c;分页工具可以使用github的 PageHelper。…

Springboot Mybatis使用PageHelper实现分页查询

以下介绍实战中数据库框架使用的是mybatis&#xff0c;对整合mybatis此处不做介绍。 使用pageHelper实现分页查询其实非常简单&#xff0c;共两步&#xff1a; 一、导入依赖&#xff1b; pom.xml添加依赖&#xff1a; <!--分页插件 pagehelper --> <dependency>…

mysql 与 xls 连接_数据库MySQL与xls文件的互导

最近的一个项目需要将xls表导入到MySQL数据库中和将MySQL数据表导出到xls表中&#xff0c;在网上搜了很多资料&#xff0c;经过多次尝试终于实现了功能&#xff0c;废话不多说&#xff0c;在这粘贴出代码&#xff0c;希望可以帮到需要的朋友。一、将.xls表导入到MySQL数据表中。…

Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例

如何用一条sql语句实现批量更新&#xff1f;mysql并没有提供直接的方法来实现批量更新&#xff0c;但是可以用点小技巧来实现。 代码如下: UPDATE mytable SET myfield CASE id WHEN 1 THEN valueWHEN 2 THEN valueWHEN 3 THEN value END WHERE id IN (1,2,3);这里使用了c…

MySQL可运行在不同的操作系统下_不同操作系统下的mysql数据库同步

当数据库的数据量读写频繁的时候&#xff0c;我们就要考虑把数据库的读写分开&#xff0c;以提高数据库的使用效率&#xff0c;(当然还有其他用处比如&#xff0c;备份数据)&#xff0c;这个时候我们就要用到mysql的一个功能&#xff0c;数据库同步。下面就具体讲一下实现方法。…

@RequestBody和@RequestParam区别

一&#xff1a;RequestBody和RequestParam区别 RequestParam 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。&#xff08;Http协议中&#xff0c;如果不指定Content-Type&#xff0c;则默认传递的参数就是application/x-www-form-urlencoded类型&am…

mysql内置加密函数_MySQL数据库内置加密函数总结

首先&#xff0c;我认识的加密函数有以下几个&#xff1a;password(plainText)&#xff1a;旧版(OLD_PASSWORD())加密后长度16位&#xff0c;新版41位select length(password("123456"))可以用来查看加密后的字符串的长度。这种加密方法依赖数据库&#xff0c;需要保…

Query String Parameters、Form Data、Request Payload的区别

Query String Parameters 当发起一次GET请求时&#xff0c;参数会以url string的形式进行传递。即?后的字符串则为其请求参数&#xff0c;并以&作为分隔符。 如下http请求报文头&#xff1a; GeneralRequest URL: http://login?unamedingdingRequest Method: GETQuery…

c mysql 添加数据类型_MYSQL的常用命令和增删改查语句和数据类型

连接命令&#xff1a;mysql -h[主机地址] -u[用户名] -p[用户密码]创建数据库&#xff1a;create database [库名]显示所有数据库: show databases;打开数据库:use [库名]当前选择的库状态:SELECT DATABASE();创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) …