Android学习笔记—第七章 数据解析及读取

第七章 数据解析及读取

  1. 网络传输中数据的组织方式:xml、json、http

    (1)xml:可扩展标记语言

    特点:保存少量数据,可跨平台

    解析方式:sax、dom、pull

    a. sax解析:

    特点:速度快,占用内存少。事件驱动,不会一次性把所有内容加载到内存中。

    startElement:元素节点开始

    localName:不带前缀的标签名

    qName:带前缀的标签名

    attributes:节点内的属性和值

    <student id ="1">


        <name>小明</name>

    </student>

    (2)dom解析:

    特点:一次性把所有内容加载到内存中

    使用于服务端编程

    (3)pull解析:

    特点:类似于sax,不会自动读取

    适用于移动设备,占用内存少

  2. json解析

    特点:相对xml,更加节省空间

    (1)json对象:{"key1":"value1","key2":"value2"}

    a. 以{}开始和结束

    b. key必须是字符串,value可以是基础数据类型、String、json对象、json数组

    c. 每条数据以逗号分隔

    例子:

    {"name":"小明","age":25,"married":"true"}

    (2)json的解析

    //根据传入的字符串,得到JSONObject类型对象

    JSONObject jsonObject = new JSONObject(str);

    //根据key,获取对应的数据

    String name = jsonObject.getString("name");

    int age = jsonObject.getInt("age");

    boolean b = jsonObject.getBoolean("married")


    //向jsonOnject中传入数据

    jsonObject.put("name","小红");

    jsonObject.put("age",20);

    jsonObject.put("married","false");

    (3)JSONArray json数组

    a. 以[]开始和结束

    b. 每一条数据都是一个jsonObject

    c. 每条数据以逗号分隔

    例子:

    [{"name":"小明","age":25,"sex":"male"},{"name":"小红","age":23,"sex":"female"}]

    解析一条JSONArray 格式的数据

    //根据传入的字符串得到一个JSONArray 类型的对象

    JSONArray jsonArray = new JSONArray (str);

    for(int i=0; i<jsonArray.length;i++){

        //根据下标得到JSONObject对象

        JSONObject jsonObject = jsonArray.getJSONObject(i);

        //根据key值得到对应的数据

        String name = jsonObject.getString("name");

        int age = jsonObject.getInt("age");

        String sex = jsonObject.getString("sex");

    }


    //向JSONArray 中传入数据

    JSONArray jsonArray = new JSONArray();

    JSONObject jsonObject1 = new JSONObject();

    JSONObject jsonObject2 = new JSONObject();

    jsonObject1.put("name","小黑");

    jsonObject2.put("name","小白");

    jsonArray.put(jsonObject1);

    jsonArray.put(jsonObject2);

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。