1.JSON 简介
1.1_ 简介
JSON 的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式。
1.2_ 特点
(1)JSON 比 XML 数据传输的有效性要高出很多
(2)JSON 完全独立于编程语言。
(3)本质就是具有特定格式的字符串
2.JSON数据格式
2.1_Json 数组 : [ ]
(1)Json 数组的结构: [value1, value2, value3]
(2)例子:
[1, “ab”,[], {“n”:123, “b”:”abc”}] 正确
[1, “a”:3] 错误
2.2_Json 对象: {}
(1)Json 对象的结构: {key1:value1, key2:value2, key3:value3}
(2)key 的数据类型: 字符串
(3)value 的数据类型: 数值、字符串、null、json 数组 []、json 对象 {}
(4)例子:
{“name”:”TOM”, “age”:12} 正确
{“aa”:“a”, 3} 错误
3.JSON 解析方向
3.1将 java 对象( 包含集合) 转换为 json 格式字符串
在服务器端应用。
3.2_将 将 json 格式字符串转换为 java
3.3_Json 和 和 Java 之间转换关系
4.使用原生解析json数据的步骤
1)解析对象
说明:利用JSONObject的get***方法获取解析数据,然后再根据对象封装数据。
2)解析数组
说明:利用JSONArray的get***获取到对应的JSONObject对象,然后再根据解析对象的方法封装数据。
5.解析时需要封装的对象的打造流程
常规步骤:
把json数据放置HiJson软件,然后看清楚其json数据的结构,然后一一的根据这个结构一直解析下去,直到你想要解析的数据的属性值都为String或者是值,或者是这些的数据的集合。
简单步骤:
下载GsonFormat软件,然后建造一个空封装类,在该类下按下 alt+shift+s,并点击 GsonFormat,将我们的数据输入进去,点击ok,即可得到封装类。
6.利用GSON框架解析json数据
1)特点:编码简洁,谷歌官方推荐
2)下载地址:https://mvnrepository.com/artifact/com.google.code.gson/gson
3)将json格式的字符串转换为java对象,步骤为:
(1)将 Gson 的 jar 包导入到项目中
(2)创建Gson对象 : Gson gson = new Gson();
(3)通过创建的Gson对象调用fromJson()方法,返回该JSON数据对应的Java对象
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);
4)将json格式的字符串转换为java集合,步骤为:
(1)将 Gson 的 jar 包导入到项目中
(2)创建Gson对象 : Gson gson = new Gson();
(3)通过创建的Gson对象调用fromJson()方法,返回该JSON数据对应的Java集合:
List<ShopInfo> shops = gson.fromJson(json, new
TypeToken<List<ShopInfo>>() {}.getType());
注意:要求 json 对象的 中的 key 的名称与 java
5)将java对象和java对象集合转换为json字符串
方法:将对象或者集合传入gson对象的toJson()方法即可。
7.FastJson 框架技术
1)特点:Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库。它采用一种“假定有
序快速匹配”的算法,把 JSON Parse 的性能提升到极致,是目前 Java 语言中最快的 JSON 库。
2)下载地址:https://github.com/alibaba/fastjson/wiki
3)将json格式的字符串转换为java对象,步骤为:
(1)导入 fastjson 的 jar 包
(2)JSON调用parseObject()方法,获取转换后的Java对象
例如:ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
4)将json格式的字符串转换为java集合,步骤为:
(1)导入 fastjson 的 jar 包
(2)JSON调用parseArray()方法,获取转换后的Java集合
例如:List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
注意:要求 json 对象的 中的 key 的名称与 java
5)将java对象和java对象集合转换为json字符串
方法:将对象或者集合传入gson对象的toJSONString()方法即可。
8.使用原生和框架的区别和练习
框架的底层是使用原生,而原生的话解析完要封装数据,所以每一步的解析之后,都要进行封装数据,而一般全部解析完要多步,而框架直接一步解析,同时也不用封装数据,十分简便。