Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

一、Json 的使用

我们上一篇讲述了 Json 的基本用法,我们还自己写了几个 Json。

我们在写的过程中不难发现,就是这个 \ 这个转义符添加的问题,这要是让我们写上一个班级的学生数据,那就完蛋了,所以为了不让我们自己去一个一个写,我们引入两种常用的 Json 格式化的 工具

一个是谷歌公司推出的 Gson,还有一个是阿里巴巴推出的 Fastjson

这两个我们用那个都行,看自己选择,我先来说这个 Gson

在此之前,我们创建一个 Student 的类,我们一会要用~~

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

id 主键

name 姓名

createDt 创建日期

price 自己有多少钱

hobbies 爱好

自己再去添加一下 get/set 方法,还有构造、toString

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

二、Gson

首先,我们去 maven 仓库,把这个 Gson 的包给他下载下来,下载地址:https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.6

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

下载下来之后,我们放到我们之前的 AjaxHelloWorld 项目中

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

然后,我们来写一个 GsonTest。

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

首先,我们先实例化一个 Student 的集合,然后,给这个集合赋一些初始值,后面要用

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

然后我们来开始做操作

1. 实例化一个简单的 Json 对象

这里我们需要用到 Gson 给我们提供的 JsonObject 对象,我们用它来创建对象,然后调用 addProperty 方法,给这个对象添加键值对

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

这里注意一下,看清楚导入的包,我们使用的是 import com.google.gson.JsonObject; 运行一下

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

当然了,这里我们再来试试别的

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

注意,这里只能添加引用类型,不能添加基本数据类型的值!!

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

可以看到,我们又添加了一个 key 为 123 的对象,但是并没有显示,而是做了替换,这个就是我之前说的,同一个 key 不可能存在同一个层级下。

2. 实例化一个简单的 Json 数组

实例化 Json 数组,我们是使用的 Gson 给我们提供的 JsonArray,添加对象需要调用 add 方法,如下

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

然后我们创建两个 JsonObject 对象,存放到这个数组中

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

运行一下,看看输出什么

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

可以看到,是一个数组对象

3. 将 list 集合转换成 Json

我们再来写一个方法,将我们之前定义的 list 集合转换成我们的 Json,这里其实我们调用的是 Gson 提供的 toJson 方法,我们来看一下

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

我们运行一下,看看效果

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

是没有问题的,我们把结果复制到 Json 检查的网站去检测一下

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

也是没有问题的

这里我要说一下,这个 Gson 对象的 toJson 方法有很多重载方法,可以将很多种数据结构的对象转换成 Json 对象,大家可以自己去研究研究(集合都可以转换,更不要说单个对象什么的了)

4. 将 Json 转换成 Java 对象

我们将 Json 字符串 转换成 Java 对象,这里呢,我们用刚刚生成的 Json 来进行测试

这里呢,我们需要用到 Gson 给我们提供的 fromJson 方法,这个 fromJson 方法里面有很多的构造函数

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

可以看到,提供的很全哈,我们这里使用倒数第二个,这里还需要多加一个类的支持

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

还有一点,这里需要知道具体的 Json 对象的格式,不然会报错,一般情况下,我们都是知道这个格式,然后进行转换

我们把这个 Json 数组转换成 List 集合,然后进行遍历输出一下

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

是没有问题的啊,因为我们只有一个对象,所以只能遍历出一个,当然啊,这里字段需要对应,不对应也是没有办法将这些值赋值给我们的对象中的属性的

三、FastJson

其实,FastJson 和 Gson 非常类似,仅仅是调用的函数名称不同,参数不同点而已,其他的使用方式都是类似的,FastJson Maven 下载地址:https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.75

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

下载好同样扔到我们的项目中

这里我直接上代码了,不说那么多废话了

1. 创建普通 Json 对象

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

这里要注意一下,Gson 给我们提供的是 JsonObject,阿里的 FastJson 给我们提供的是 JSONObject 不一样啊,看清楚了~~

2. 创建 Json 数组

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

3. list 集合转换 Json

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

这里需要注意的是,JSONObject 这个对象使用 toJSON 方法后,返回的是一个 Object 对象,这个对象最好强转成 JSONArray,或者是 JSONObject 去接收

4. Json 字符串转换成对象

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

这里是因为 JSONObject 调用 parse 之后,返回的是一个 Object 对象,因为我知道他是什么类型的,所以我就使用 List 进行接收

 

总体来说,两个都功能差不多,性能方面,是 FastJson 更好,但是相比这样的强转,我更喜欢 Gson 的转换~,当然,具体使用什么,看你自己~

四、Json 和 Ajax 配合使用

这里我们用 Gson 来实现一下它俩的配合~

我们先来修改一下我们之前的那个 Servlet

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

我们使用 JsonObject 将 Json 返回到前端,前端我们不变,我们继续使用 index2.html 进行测试,启动服务器,我们看一下结果

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

是 OK 的啊。

我们接下来修改一下,我们使用 $.get 方式进行获取一下,我们再来复制一个 index3.html

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

从新启动一下服务器,我们再来看看能不能行

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

也是可以的

当然,POST 也是可以的

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

原因就是我们这里调用了 doGet 

 

Ajax 与 Json 就讲完了,希望大家可以好好学习理解他们,毕竟这玩意需要陪我们很久的

 

大家可以自己好好查查看,有不懂的可以联系我 QQ:2100363119

欢迎大家访问我的网站:https://www.lemon1234.com

可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~

最近小程序也开放了,大家可以扫码进行玩玩看

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

上一篇:【学习笔记】JSON


下一篇:【安卓爬虫JAVA版-1】在android studio 之中使用json数据格式