解析Json数据,直接将String类型的Json数据出入即可
注意,在传入的时候引号要进行转译,用“\”进行转译
在操作Json数据前先倒入Gson数据包,并且代码依赖于其他库,还要在具体project上右键属性,在java build path里的order and export里把要编译的包文件前打勾。
传入的Json数据注意:用String类型传入时,引号用\进行转译,例如传入的参数是:
注意,在传入的时候引号要进行转译,用“\”进行转译
这里以一个student为例,同样需要一个事先定义好的Student.java类
public class Student {
private String name;
private int number;
private String sex;
public Student() {
super();
}
public Student(String name, int number, String sex) {
super();
this.name = name;
this.number = number;
this.sex = sex;
}
。。。。。。。各种set/get方法。。。。。。。
}
自定义一个Json操作类,其中有将Json数据转换成Java对象,将Java对象转换成Json数据,解析Json数据的
在操作Json数据前先倒入Gson数据包,并且代码依赖于其他库,还要在具体project上右键属性,在java build path里的order and export里把要编译的包文件前打勾。
传入的Json数据注意:用String类型传入时,引号用\进行转译,例如传入的参数是:
[{\"name\":\"jack\",\"number\":111,\"sex\":\"men\"},{\"name\":\"tom\",\"number\":222,\"sex\":\"women\"},{\"name\":\"lily\",\"number\":333,\"sex\":\"men\"}]
public class JsonHandler {
// 解析Json数据的对象
private android.util.JsonReader reader;
// 将Json数据转换成Java对象,例子中的是Student, 传入的是Json数据
public List<Student> parserToJava(String data) {
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Student>>() {
}.getType();
List<Student> list = gson.fromJson(data, type);
return list;
}
// 将Java对象转换成Json数据, 传入的是Student的集合
protected String parserToJson(List<Student> list) {
Type type = new TypeToken<ArrayList<Student>>() {
}.getType();
Gson gson = new Gson();
String json = gson.toJson(list, type);
return json;
}
// 自定义方法,解析Json数据,返回所包含的对象集合
public List<Student> parser(String data) throws Exception {
List<Student> students = new ArrayList<Student>();
// 建立一个解析Json数据的对象
reader = new android.util.JsonReader(new StringReader(data));
// 开始解析Json对象数组
reader.beginArray();
while (reader.hasNext()) {
Student student = new Student();
// 开始解析Json对象
reader.beginObject();
while (reader.hasNext()) {
// 读取key
String tagName = reader.nextName();
// 获取value
if ("name".equals(tagName)) {
student.setName(reader.nextString());
} else if ("number".equals(tagName)) {
student.setNumber(reader.nextInt());
} else if ("sex".equals(tagName)) {
student.setSex(reader.nextString());
}
}
reader.endObject();
students.add(student);
}
reader.endArray();
return students;
}
}