1. 数据解析、XML和JSON、JSON和XML的常见解析方式。
2. 数据解析:可以理解成从一个特定规则的数据类型中去提取出我们关心的数据内容。
3. 网络传输数据常用的数据格式:JSON和XML
4. JSON解析的方式:
a. 使用JSONObject和JSONArray来解析数据。
b. google提供的一个第三方包gson.jar来进行解析。
5. XML解析的方式:
a. PULL解析,Android官方推荐的方式。
b. SAX解析,主要需要自定义一个Handler来进行相关的处理。
c. DOM解析,以文档树的形式进行解析。
6. JSON的数据类型分为两种:
a. 对象,以“{}”区分
b. 数组,以“[]”区分
解析时,遇到对象就用JSONObject来进行解析
遇到数组就用JSONArray来进行解析
7. 使用JSONObject和JSONArray解析JSON数据的基本流程:
a. 得到一个JSON数据,并通过该数据来构造JSONOject对象out
b. 进一步解析out中的数据(数据都是以键值对的形式存在)
i. 如果值是具体的字符串等,直接通过out的getString(key)
ii.如果值是对象,使用out的getJSONObject方法来获取该对象
重复上述过程,进一步解析每一个对象中的数据
iii.如果是数组,使用out的getJSONArray方法来获取数组
遍历数组,分别取出里边的对象,再做进一步的解析
8. 使用PULL方式来解析XML:
PULL解析,边读边解析方式,通过事件来进行解析的驱动。
PULL解析中的四种事件类型,对应的是一个整型数
开始文档:XmlPullParser.START_DOCUMENT,值为0
结束文档:XmlPullParser.END_DOCUMENT,值为1
开始标签:XmlPullParser.START_TAG,值为2
结束标签:XmlPullParser.END_TAG,值为3
9. 使用PULL解析XML的基本流程:
a. 获取PULL解析器
XmlPullParser parser = Xml.newPullParser();
b. 设置parser的编码方式以及资源
parser.setInput(in, "UTF-8");
c. 首先获取一个事件
int event = parser.getEnventType();
d. 循环去驱动事件,然后做对应操作,循环结束的标志是解析完毕,即事件为结束文档
循环里边需要去做对应事件的处理。
没处理一个事件之后,需要调用parser的next方法去驱动下一个事件,需要使用event接收事件返回值