Android学习笔记 --------- json数据的解析

习安卓一段时间了。突然觉得前面所学的大多没什么用,现在开始重新整理一遍。现在主要学习和网络相关的安卓知识了。毕竟现在的安卓应用,大多都跟做网络客户端有关的。
这是学习笔记整理的第一篇,记录下Json数据解析,用的gson包。
json就是键值对的集合。
Android一般运用到json解析的地方都是应用通过http向服务器请求信息后,服务器返回json数据,Android将其中的每个json对象解析成相应的Bean对象,如下面的json数据:

[{"name":"zhangsan","age":20},["name":"lisi","age":19]]

此为一个json数组,里面包含两个人的对象。
我们解析便是把两个对象提取出来:

1、在android工程里生成一个Person类,person类的成员有name和age,对于json数据里面的对象。

2、写一个json解析的类,直接返回一个List对象,包含解析好的两个person对象,类的构建如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.example.jsontest2;

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.stream.JsonReader;

public class JsonUtils {
    private List<Person> persons = null;
    private Person person = null;

    public List<Person> getPersons(String jsonData){
        try {
            JsonReader reader = new JsonReader(new StringReader(jsonData));
            reader.beginArray();
            persons = new ArrayList<Person>();
            while (reader.hasNext()) {
                reader.beginObject();
                person = new Person();
                while(reader.hasNext()){
                String tagName = reader.nextName();
                if (tagName.equals("name")) {
                    person.setName(reader.nextString());
                }else if(tagName.equals("age")){
                    person.setAge(reader.nextInt());
                }
            }
                reader.endObject();
                persons.add(person);
            }
            reader.endArray();      
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return persons;
    }
}

在需要时调用JsonUtils的getPersons方法即可。这当然是比较简单的一种json数据解析。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值