虽然android自带了json处理,但是没有封装,总觉得不方便,网上找了gson的处理,觉得还行。
- //转换器
-
GsonBuilder builder = new GsonBuilder(); -
// 不转换没有 @Expose 注解的字段 -
builder.excludeFieldsWithoutExpo seAnnotation(); -
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 testBeanList = new ArrayList(); -
Student testBean = new Student(); -
testBean.setStudentId(555); -
testBean.setStudentName("552"); -
testBeanList.add(testBean); -
-
//Gson gsonList = new Gson(); -
Type type = new TypeToken>(){}.getType(); //指定集合对象属性 -
String beanListToJson = gson.toJson(testBeanList, type); -
System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}] -
-
//集合string转对象list -
List testBeanListFromJson = gson.fromJson(beanListToJson, type); -
System.out.println(testBeanListFromJson); //[555:552] -
-
//4、集合如果不指定类型 默认为String -
List testList = new ArrayList(); -
testList.add("first"); -
testList.add("second"); -
String listToJson = gson.toJson(testList); -
System.out.println(listToJson); //["first","second"] -
-
//5、集合字符串转回来需要指定类型 -
List testList2 = (List) gson.fromJson(listToJson, -
new TypeToken>() { -
}.getType()); -
System.out.println(testList2); -
-
//6、 将HashMap字符串转换为 JSON -
Map testMap = new HashMap(); -
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 userMap2 = (Map) gson.fromJson(mapToJson, -
new TypeToken -
}.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 userMap = new HashMap(); -
userMap.put("user1", user1); -
userMap.put("user3", user3); -
-
List userList = new ArrayList(); -
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() { -
}.getType()); -
System.out.println(sGroupBean); -
//转换器 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 testBeanList = new ArrayList(); Student testBean = new Student(); testBean.setStudentId(555); testBean.setStudentName("552"); testBeanList.add(testBean); //Gson gsonList = new Gson(); Type type = new TypeToken>(){}.getType(); //指定集合对象属性 String beanListToJson = gson.toJson(testBeanList, type); System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}] //集合string转对象list List testBeanListFromJson = gson.fromJson(beanListToJson, type); System.out.println(testBeanListFromJson); //[555:552] //4、集合如果不指定类型 默认为String List testList = new ArrayList(); testList.add("first"); testList.add("second"); String listToJson = gson.toJson(testList); System.out.println(listToJson); //["first","second"] //5、集合字符串转回来需要指定类型 List testList2 = (List) gson.fromJson(listToJson, new TypeToken>() { }.getType()); System.out.println(testList2); //6、 将HashMap字符串转换为 JSON Map testMap = new HashMap(); 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 userMap2 = (Map) gson.fromJson(mapToJson, new TypeToken
- //9、复杂对象string转对象
- Teacher
groupBean2 = (Teacher) gson.fromJson(sGroupBean, -
new TypeToken() { -
}.getType()); - System.out.println(groupBean2);
//9、复杂对象string转对象 Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean, new TypeToken() { }.getType()); System.out.println(groupBean2);
- package
com.andtools; -
- import
com.google.gson.annotations.Expose; -
- public
class Student { -
@Expose -
private String studentName; -
@Expose -
private 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 com.google.gson.annotations.Expose; public class Student { @Expose private String studentName; @Expose private 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 { -
@Expose -
private int id; -
@Expose -
private String name; -
@Expose -
private int age; -
@Expose -
private Student student; -
@Expose -
private List stus; -
@Expose -
private 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; -
} -
- }
package com.andtools; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gson.annotations.Expose; public class Teacher { @Expose private int id; @Expose private String name; @Expose private int age; @Expose private Student student; @Expose private List stus; @Expose private 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; } }