JS中JSON类型和对象的转换:
obj={"name":"theking","age":18}//JSON对象,是一个对象
对象-->JSON字符串:var jsonStr=JSON.stringify(obj);
JSON字符串-->对象:var jsonObj=JSON.parse(jsonStr);
JAVA中JSON字符串和对象的转换:(第三方的Jar包 gson-2.2.4.jar)
由于java中对象较多分为三类:对象(Student),List ,Map.
对象(Student):
@Test
public void test1() {
//对象转JSON字符串,json字符串转对象、集合,
Student stu=new Student(1, "theking", 18);
String json = gosn.toJson(stu);//Student转换为JSON字符串
System.out.println(json);
Student student = gosn.fromJson(json, Student.class);//JSON字符串转Student对象(反射)
System.out.println(student);
}
结果:
{"id":1,"name":"theking","age":18}
Student [id=1, name=theking, age=18]
List对象(List<Student>):
@Test
public void test2() {
//对象转JSON字符串,json字符串转对象、集合,
List<Student>list=new ArrayList<>();
list.add(new Student(1, "theking", 18));
list.add(new Student(2, "theking1", 17));
list.add(new Student(3, "theking2", 19));
list.add(new Student(4, "theking3", 20));
String json = gosn.toJson(list);
System.out.println(json);
List<Student> list1 = gosn.fromJson(json, new TypeToken<List<Student>>() {}.getType());
System.out.println(list1);
}
结果:注意List集合转JSON后,是在数组中(你看开始的那个 [ ] )
[{"id":1,"name":"theking","age":18},{"id":2,"name":"theking1","age":17},{"id":3,"name":"theking2","age":19},{"id":4,"name":"theking3","age":20}]
[Student [id=1, name=theking, age=18], Student [id=2, name=theking1, age=17], Student [id=3, name=theking2, age=19], Student [id=4, name=theking3, age=20]]
Map对象:( Map<String,Student>map = new HashMap<>())
@Test
public void test3() {
//对象转JSON字符串,json字符串转对象、集合,
Map<String,Student>map=new HashMap<>();
map.put("1",new Student(1, "theking", 18));
map.put("2",new Student(2, "theking1", 17));
map.put("3",new Student(3, "theking2", 19));
map.put("4",new Student(4, "theking3", 20));
String json = gosn.toJson(map);
System.out.println(json);
Map<String,Student> list1 = gosn.fromJson(json, new TypeToken< Map<String,Student>>() {}.getType());
System.out.println(list1);
}
结果:你看这里的Map转Json是在 { } 中
{"1":{"id":1,"name":"theking","age":18},"2":{"id":2,"name":"theking1","age":17},"3":{"id":3,"name":"theking2","age":19},"4":{"id":4,"name":"theking3","age":20}}
{1=Student [id=1, name=theking, age=18], 2=Student [id=2, name=theking1, age=17], 3=Student [id=3, name=theking2, age=19], 4=Student [id=4, name=theking3, age=20]}