当前位置:编程学习 > JS >>

Android[中级教程]第八章 Json数据的处理

 

经过上几章的学习,相信同学们对XML解析已经得心应手了,但今天我们要解析Json数据,因为Json数据占用数据量小,因此在Android中主要数据通信还是以Json为主,而且Json数据可以跟Android进行AJAX互动,相当方便哦,好了,不多说了,看图跟代码:

 

先上图:

\

首先定义了Json数据:

{ "persons": [  

{ "id": "1", "status":"大徙弟", "name": "孙悟空", "tool": "金箍棒", "number": "杀死了50只妖怪" },  

{ "id": "2", "status":"二徙弟", "name": "猪八戒", "tool": "九齿钉耙", "number": "杀死了43只妖怪" }, 

{ "id": "3", "status":"三徙弟", "name": "沙和尚", "tool": "降妖宝杖", "number": "杀死了33只妖怪" } 

]}  

接下来就是定义javaBean了,对于java开发来说,javaBean可以很方便地存储和管理数据

 

 

public class Person 

    private String id; 

    private String status; 

    private String name; 

    private String tool; 

    private String number; 

     

 

    public String getId() 

    { 

        return id; 

    } 

    public void setId(String id) 

    { 

        this.id = id; 

    } 

    public String getStatus() 

    { 

        return status; 

    } 

    public void setStatus(String status) 

    { 

        this.status = status; 

    } 

    public String getName() 

    { 

        return name; 

    } 

    public void setName(String name) 

    { 

        this.name = name; 

    } 

    public String getTool() 

    { 

        return tool;   www.zzzyk.com

    } 

    public void setTool(String tool) 

    { 

        this.tool = tool; 

    } 

    public String getNumber() 

    { 

        return number; 

    } 

    public void setNumber(String number) 

    { 

        this.number = number; 

    } 

    @Override 

    public String toString() 

    { 

        return "Person [id=" + id + ", status=" + status + ", name=" + name 

                + ", tool=" + tool + ", number=" + number + "]"; 

    } 

     

 

 

接下来就是Json的处理了,定义了一个JsonHandler类

 

 

import java.io.BufferedReader; 

import java.io.InputStream; 

import java.io.InputStreamReader; 

import java.util.ArrayList; 

import java.util.List; 

 

import org.json.JSONArray; 

import org.json.JSONObject; 

 

public class JsonHandler 

    private InputStream input; 

    private List<Person> persons; 

    private Person person; 

 

    public JsonHandler() 

    { 

    } 

 

    public JsonHandler(InputStream input) 

    { 

        this.input = input; 

    } 

 

    public void setInput(InputStream input) 

    { 

        this.input = input; 

    } 

 

    public List<Person> getPersons() 

    { 

        persons = new ArrayList<Person>(); 

        try 

        { 

            //自定义方法,从输入流中取得字符串 

            String json_str = getJsonString(input); 

            //通过字符串生成Json对象 

            JSONObject object = new JSONObject(json_str); 

            //将Json对象中的persons数据转换成Json数组 

            JSONArray array = object.getJSONArray("persons"); 

            //数组长度 

            int length = array.length(); 

            for (int i = 0; i < length; i++) 

            { 

                //将每一个数组再转换成Json对象 

                JSONObject obj = array.getJSONObject(i); 

 

                person = new Person(); 

                person.setId(obj.getString("id")); 

                person.setStatus(obj.getString("status")); 

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,