gson在android中的使用例子
来源:互联网 发布:php开发api接口教程 编辑:程序博客网 时间:2024/06/06 13:02
虽然android自带了json处理,但是没有封装,总觉得不方便,网上找了gson的处理,觉得还行。
//转换器 GsonBuilder builder = new GsonBuilder(); // 不转换没有 @Expose 注解的字段 builder.excludeFieldsWithoutExposeAnnotation(); Gson gson = builder.create(); //1、对象转string Student stu = new Student(); stu.setStudentId(333); stu.setStudentName("qqq"); String stuStr = gson.toJson(stu); System.out.println(stuStr); //{"studentName":"qqq","studentId":333} //2、string转对象 Student user2 = gson.fromJson(stuStr, Student.class); System.out.println(user2); String stuTemp = "{\"studentName\":\"qqq2\",\"studentId\":3335}"; Student user4 = gson.fromJson(stuTemp, Student.class); System.out.println(user4); //3、对象List转string List<Student> testBeanList = new ArrayList<Student>(); Student testBean = new Student(); testBean.setStudentId(555); testBean.setStudentName("552"); testBeanList.add(testBean); //Gson gsonList = new Gson(); Type type = new TypeToken<List<Student>>(){}.getType(); //指定集合对象属性 String beanListToJson = gson.toJson(testBeanList, type); System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}] //集合string转对象list List<Student> testBeanListFromJson = gson.fromJson(beanListToJson, type); System.out.println(testBeanListFromJson); //[555:552] //4、集合如果不指定类型 默认为String List<String> testList = new ArrayList<String>(); testList.add("first"); testList.add("second"); String listToJson = gson.toJson(testList); System.out.println(listToJson); //["first","second"] //5、集合字符串转回来需要指定类型 List<String> testList2 = (List<String>) gson.fromJson(listToJson, new TypeToken<List<String>>() { }.getType()); System.out.println(testList2); //6、 将HashMap字符串转换为 JSON Map<String, String> testMap = new HashMap<String, String>(); testMap.put("id", "id.first"); testMap.put("name", "name.second"); String mapToJson = gson.toJson(testMap); System.out.println(mapToJson); //{"id":"id.first","name":"name.second"} //7、stringMap转对象 Map<String, String> userMap2 = (Map<String, String>) gson.fromJson(mapToJson, new TypeToken<Map<String, String>>() { }.getType()); System.out.println(userMap2); //{id=id.first, name=name.second} //8、对象含有普通对象、集合、map情况 Student user1 = new Student(); user1.setStudentId(1001); user1.setStudentName("张三"); Student user3 = new Student(); user3.setStudentId(1002); user3.setStudentName("李四"); Map<String, Student> userMap = new HashMap<String, Student>(); userMap.put("user1", user1); userMap.put("user3", user3); List<Student> userList = new ArrayList<Student>(); userList.add(user1); userList.add(user3); Teacher groupBean = new Teacher(); groupBean.setStudent(user1); groupBean.setStus(userList); groupBean.setMap((HashMap)userMap); //groupBean.setUserList(userList); Gson gsonGroup = new Gson(); String sGroupBean = gsonGroup.toJson(groupBean, new TypeToken<Teacher>() { }.getType()); System.out.println(sGroupBean); /*{"stus":[{"studentName":"张三","studentId":1001},{"studentName":"李四","studentId":1002}],"student":{"studentName":"张三","studentId":1001},"map":{"user3":{"studentName":"李四","studentId":1002},"user1":{"studentName":"张三","studentId":1001}},"id":0,"age":0}*/
//9、复杂对象string转对象 Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean, new TypeToken<Teacher>() { }.getType()); System.out.println(groupBean2);
package com.andtools;import com.google.gson.annotations.Expose;public class Student {@Exposeprivate String studentName;@Exposeprivate int studentId;public Student(){}public Student(int studentId,String studentName){this.setStudentId(studentId);this.setStudentName(studentName);}public String toString(){return this.getStudentId() + ":" + this.getStudentName();}public String getStudentName() {return studentName;}public void setStudentName(String studentName) {this.studentName = studentName;}public int getStudentId() {return studentId;}public void setStudentId(int studentId) {this.studentId = studentId;}}
package com.andtools;import java.util.HashMap;import java.util.List;import java.util.Map;import com.google.gson.annotations.Expose;public class Teacher {@Exposeprivate int id;@Exposeprivate String name;@Exposeprivate int age;@Exposeprivate Student student;@Exposeprivate List stus;@Exposeprivate HashMap map;public String toString(){return this.getId()+":"+this.getName()+":"+this.getAge() +":"+ this.getStudent().toString() + ":" + this.getStus() + ":" + this.getMap();}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}public List getStus() {return stus;}public void setStus(List stus) {this.stus = stus;}public HashMap getMap() {return map;}public void setMap(HashMap map) {this.map = map;}}
- gson在android中的使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- gson使用在android使用例子
- GSON在项目中的使用
- Gson在java中的使用
- Gson在java中的简要使用
- Gson 在使用中的一些技巧
- gson.jar 在android种的使用
- Google的Gson使用例子
- Android中使用Gson
- android gson的使用
- 关于iptables的u32匹配
- Django学习笔记(七)
- 日语体言
- 多屏融合下的流媒体技术
- 栈和队列
- gson在android中的使用例子
- 浮点数(float)和双精度(double)截断问题
- 用异或实现两个数的交换&x&(x-1)表达式作用&计算前1500个丑数
- C++ trait example
- CMMI3级介绍
- 探索微博营销的价值点
- Oracle笔记(八) 复杂查询及总结
- ubuntu10.4安装交叉编译器arm-none-linux-gnueabi-gcc
- java中如何获取项目各个目录下的文件