Android_JSON数据
json是什么?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,本质就是具有特定格式的字符串
JSON数据已经是客户端与服务器端交互的最常用的选择, 已经很少使用xml来进行数据交互了
特点:
是一个有特定格式的字符串;
用于客户端与服务器端的数据交互的一种数据格式
与xml比较的优势? 简洁、小 && 省流量/响应快
json数据格式
整体结构:
Json数组 : [ ] ——java数组或list 【对应java的list】
Json对象: { } ——java的map或对象,例如Person对象 【java中自定义类型的对象或Map】
Json数组的结构: [value1, value2, value3]
Json对象的结构: {key1:value1, key2:value2, key3:value3}
key的数据类型: 字符串
value的数据类型: 数值、字符串、null、json数组 []、json对象 {}
例子:
[1, “ab”,[], {“n”:123, “b”:”abc”}] [1, “a”:3]
{“name”:”TOM”, “age”:12} {“aa”:“a”, 3}
如何解析json?
解析技术:
Android原生API : 编程相对麻烦
Gson框架 : 编码简洁, 项目首选
解析方向:
将java对象(包含集合)转换为json格式字符串(服务器)
将json格式字符串转换为java对象(包含集合)
相关API
Android原生API:
JsonObject : json对象 { }
JSONObject(String json) : 将json字符串解析为json对象
Xxx getXxx(String name) : 根据name, 在json对象中得到对应的Value
JsonArray : json数组 []
JSONArray(String json) : 将json字符串解析为json数组
int length() : 得到json数组中元素的个数
Xxx getXxx(int index) : 根据下标得到json数组中对应的元素数据
Gson框架API
Gson : 能解析json数据的类
Gson() : 构造对象的方法
String toJson(Object src) : 将对象转换为对应格式的json字符串
T fromJson(String json, Type typeOfT) : 解析Json字符串, 得到对象
TypeToken : 用来得到Type的类
protected TypeToken() : 受保存的构造方法
Type getType() : 得到类型对象