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 ,