android json内容不定 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 910111213141516171819202122232425262728293031323334353637383940
|
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数据解析。。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。