课程回顾:
XML:可扩展的标记语言
跨平台、跨网络、跨编程语言
描述数据
作用:
1、传输数据
2、配置文件
3、Android的布局文件
解析XML:
1、SAX
2、PULL
创建类
今日内容:
JSON:JavaScript Object Notation就是符合一定格式的字符串
是轻量级,数据交互的格式
目前互联网中使用范围最为广泛的数据交互的格式
跨平台、跨网络、跨编程语言
JSON的规则:
{}---->对象,内部只能是属性组成
[]---->数组,内部只能是元素组成
""---->属性名称或属性的值(字符串类型)
,----->隔开属性或元素
:----->连接属性和值
格式:
"{'id':1,'name':'张三'}"
"{'stu':{'id':1,'name':'张三'}}"
"{'stu1':{'id':1,'name':'张三'},'stu2':{'id':1,'name':'张三'}}"
"[{'id':1,'name':'张三'},{'id':2,'name':'李四'}]"
"{'list':[{'id':1,'name':'张三'},{'id':2,'name':'李四'}]}"
"{'id':1,'schoolName':'北大','list':[{'id':1,'name':'张三'},{'id':2,'name':'李四'}]}"
解析方式:
1、JSON官方
JSONObject:解析对象---{}
常用方法:
length:获取对象的属性个数
keys:获取所有属性的迭代器
getXXX:获取属性的值
putXXX:添加对应的属性和值
optXXX:获取指定属性的值
JSONArray:解析数组----[]
常用方法:
length:获取元素个数
optXXX:获取指定索引的元素内容
实际创建的类,属性不做要求
2、Gson谷歌
Gson类
1、解析对象:fromJson(待解析的字符串,Class<T>);
参数说明:
第一个参数:待解析的字符串,对象字符串
第二个参数:对应对象的Class对象
2、解析数组:fromJson(待解析的字符串([),new TypeToken<ArrayList<元素类型>>(){}.getType())
参数说明:
第一个参数:待解析的字符串,数组字符串
第二个参数:对应集合的Type类型
3、生成JSON格式字符串:toJson(对象)
要求创建的类必须可以体现JSON格式字符串的内容
3、FASTJSON阿里巴巴
工具类JSON
常用静态方法:
1、parseObject
解析对象字符串
2、parseArray
解析数组字符串
3、toJson
转换为诶JSON格式字符串
要求创建的类必须可以体现JSON格式字符串的内容
还必须有无参构造
练习:
{'data':{'type':'学生','stu1':{'id':1,'name':'张三'},'stu2':{'id':2,'name':'李四'}}}}
@SerializName("原来的名称")
@JSONField(name="原来的名称")
练习:
http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1
解析
练习:
使用Servlet创建接口
返回JSON格式字符串
再写客户端进行数据的请求和解析
JSON和XML的区别?
JSON:
XML: