android中json解析的两个工具:Gson和Jackson的使用小demo
来源:互联网 发布:能用python开发vr么 编辑:程序博客网 时间:2024/05/22 02:08
1.简介
json是android与服务器通信过程中常用的数据格式,例如,如下是一个json格式的字符串:
{"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"name":"stu1","id":"10001","age":21},{"name":"stu1","id":"10002","age":22}]}
2.android中常用的两个json库为:Gson和Jackson,一下就看一下它们是如何将对象转化为json字符串,以及如何将json字符串转化为java对象。定义Student类:
public class Student { private String name; private String id; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
定义School类:
public class School { private String name; private String address; List<Student> students; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; }}
初始化一个School的java对象,待使用:
private School initSchoolData(){ School school = new School(); school.setAddress("Nanjing"); school.setName("NUPT"); List<Student> list = new ArrayList<Student>(); for(int i= 0;i<3;i++){ Student student = new Student(); student.setAge(20+i); student.setId("1000"+i); student.setName("stu"+1); list.add(student); } school.setStudents(list); return school; }
3.使用Gson,进行java对象与json字符串之间的相互转换
private void testGson(){ School school = initSchoolData(); Gson gson = new Gson(); //将对象转化为json字符串 String jsonString = gson.toJson(school).toString(); //打印 System.out.println("GSON="+jsonString); /******分割线*****/ //将字符串转化为JSON对象 School resultSchool = gson.fromJson(jsonString, School.class); //打印 System.out.println(resultSchool.getStudents().get(0).getName()); }可见,Gson是通过toJson和fromJson两个方法进行转换的,使用起来十分方便。
4.使用Jackson
private void testJackson(){ School school = initSchoolData(); ObjectMapper objectMapper = new ObjectMapper(); String jsonString = ""; //将对象转化为Json字符串 try { jsonString = objectMapper.writeValueAsString(school); System.out.println("Jackson="+jsonString); } catch (JsonProcessingException e) { // TODO Auto-generated catch block e.printStackTrace(); } //将json字符串解析成java对象 try { School resultSchool = objectMapper.readValue(jsonString, School.class); //打印 System.out.println(resultSchool.getStudents().get(0).getName()); } catch (JsonParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
使用Jackson,主要是使用writeValueAsString和readValue这两个方法。此外,Jackson的writeValue和readValue有很多种参数类型,适用于多中场合
Gson文档: http://code.google.com/p/google-gson/
Jackson: http://jackson.codehaus.org/
0 0
- android中json解析的两个工具:Gson和Jackson的使用小demo
- android:json解析的两个工具:Gson和Jackson的使用小例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android中Json的全解析(JSONObject,JSONArray,Gson,Jackson)
- Jackson和Gson的使用
- Jackson和Gson的使用
- json解析工具:Gson的使用
- Android中重要数据解析JSON工具之gson库的使用
- Android中使用Gson解析JSON数据的方法
- Android常用Json解析框架GSON和FastJson的使用
- android-关于Gson和json的解析转化使用
- 使用GSON解析复杂的JSON数据(有DEMO)
- IOS_月薪10k以上知识大总结
- 13:52:43,788 WARN OgnlValueStack:49-Error setting valueognl.MethodFailedException: Method "setAge" f
- JAVA中的包机制
- STL算法 ------ 局部排序
- git@osc中协作开发、复制项目、贡献代码
- android中json解析的两个工具:Gson和Jackson的使用小demo
- x264命令行参数解释
- MTK 双卡切单卡配置(项目积累)
- 项目实战:OTA系统升级
- [Unity基础]unity调用dll文件以及反射加载dll
- 总结整理时下流行的浏览器User-Agent大全
- LeetCode: Repeated DNA Sequences
- 黑马程序员-Java学习笔记之异常和包
- linux yum 安装svn