解析Json数据

来源:互联网 发布:alphago算法原理 编辑:程序博客网 时间:2024/04/29 07:51
解析Json数据,直接将String类型的Json数据出入即可
注意,在传入的时候引号要进行转译,用“\”进行转译

这里以一个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()) {// 读取keyString tagName = reader.nextName();// 获取valueif ("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;}}


0 0
原创粉丝点击