android:json解析的两个工具:Gson和Jackson的使用小例子
来源:互联网 发布:网络语言1是什么意思 编辑:程序博客网 时间:2024/06/06 11:49
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类:
/* * $filename: Student.java,v $ * $Date: 2014-5-12 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */package com.example.testjson;/* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: zhb931706659@126.com *2014-5-12 Nanjing,njupt,China */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类:
/* * $filename: School.java,v $ * $Date: 2014-5-12 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */package com.example.testjson;import java.util.List;/* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: zhb931706659@126.com *2014-5-12 Nanjing,njupt,China */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 blocke.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 blocke.printStackTrace();} catch (JsonMappingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
使用Jackson,主要是使用writeValueAsString和readValue这两个方法。此外,Jackson的writeValue和readValue有很多种参数类型,适用于多中场合。
注意:以上只是这两个工具类的基本用法,更多了解,参见官方文档。
Gson文档:http://code.google.com/p/google-gson/
Jackson:http://jackson.codehaus.org/
3 0
- android:json解析的两个工具:Gson和Jackson的使用小例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- android中json解析的两个工具:Gson和Jackson的使用小demo
- FastJson和Gson解析json的小例子
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Jackson和Gson的使用
- Jackson和Gson的使用
- json解析工具:Gson的使用
- Android常用Json解析框架GSON和FastJson的使用
- android-关于Gson和json的解析转化使用
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- Android程序如何实现从网络中获取一张图片
- [Unity3D]Unity3D游戏开发之继续探索NGUI
- libgdx demo apk 分享
- int_to_string
- CV领域的实验室及研究组
- android:json解析的两个工具:Gson和Jackson的使用小例子
- NYOJ891-找点
- C++对象模型那点事儿(布局篇)
- XP环境 boot.ini 关闭 DEP
- XML—尝试对一个XML文档进行增删查改编程
- What is the difference between /dev/ttyUSB and /dev/ttyACM
- C函数解析MP3信息
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- org.hibernate.hql.ast.QuerySyntaxException: XX is not mapped [from XX]