JSON解析

Gson

GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。
特点:
1.快速、高效
2.代码量少、简洁
3.面向对象
4.数据传递和解析方便

Gson的下载

在这里插入图片描述
1.首先百度Gson进入GitHub页面。
在这里插入图片描述
2.下拉至Download界面点击下载。
在这里插入图片描述
3.进入下载页面后,点击右上角Downloads中的jar即可进行下载。

Gson的使用

将对象转换为JSON字符串
转换JSON字符串的步骤:

  1. 引入JAR包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);

将JSON字符串转换为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例1:将对象转换为JSON字符串

Book book = new Book(1001,"金苹果","种苹果");
//1.    创建GSon对象
Gson g = new Gson();
//2.    转换
String s = g.toJson(book);
System.out.println(s);

运行结果:

在这里插入图片描述
案例2:将JSON字符串转换为对象

//1.    创建GSon对象
Gson g = new Gson();
//2.    转换{"id":1001,"name":"金苹果","info":"种苹果"}
Book book = g.fromJson("{\"id\":1001,\"name\":\"金苹果\",\"info\":\"种苹果\"}", Book.class);
System.out.println(book.getId());

运行结果:
在这里插入图片描述

案例3:将包含数组的JSON字符串转换为HashMap对象

//1.    创建GSon对象
Gson g = new Gson();
//2.    转换{"id":1001,"name":"金苹果","info":"种苹果","page":["你好","我好","大家好"]}
HashMap hashMap = g.fromJson("{\"id\":1001,\"name\":\"金苹果\",\"info\":\"种苹果\",\"page\":[\"你好\",\"我好\",\"大家好\"]}", HashMap.class);
System.out.println(hashMap.get("page").getClass());

运行结果:
在这里插入图片描述
由此可知,当JSON的值为数组的时候,当转为HashMap对象时就会以ArrayList的形式进行存储。

Fastjson

FastJson是阿里巴巴出品的一个json序列化工具,可以将一个Json字符转成一个Java对象或数组,或者将一个Java转化为Json字符串。

Fastjson的下载

在这里插入图片描述

1.首先百度Fastjson进入GitHub页面。
在这里插入图片描述

2.下拉至Download界面点击下载即可直接进行下载。

Fastjson的使用

将对象转换为JSON字符串
转换JSON字符串的步骤:

  1. 引入JAR包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);

将JSON字符串转换为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例1:将对象转换为JSON字符串

Book book = new Book(1002,"银苹果","哈哈");
//1.    转换
String s = JSON.toJSONString(book);
System.out.println(s);

运行结果:

在这里插入图片描述

案例2:将JSON字符串转换为对象

//1.    转换{"id":1002,"info":"哈哈","name":"银苹果"}为对象
Book book = JSON.parseObject("{\"id\":1002,\"info\":\"哈哈\",\"name\":\"银苹果\"}", Book.class);
System.out.println(book.getId());

//2.    转换["你好","我好","大家好"]为数组
List<String> strings = JSON.parseArray("[\"你好\",\"我好\",\"大家好\"]", String.class);
System.out.println(strings.get(1));

运行结果:
在这里插入图片描述

注意:如果JSON的属性对象中没有的话会造成数据丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值