JSON解析

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.使用原生和框架的区别和练习

框架的底层是使用原生,而原生的话解析完要封装数据,所以每一步的解析之后,都要进行封装数据,而一般全部解析完要多步,而框架直接一步解析,同时也不用封装数据,十分简便。

 

posted @ 2017-12-23 16:59  鹏达君  阅读(252)  评论(0编辑  收藏  举报