JSON是我们在实际开发最常用的数据交换格式,GSON则是谷歌提供的用来解析Json数据的一个Java类库,在进行Gson介绍之前我们通过以下几个部分对Gson进行深入的了解。
一、JSON的简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。用于数据转化传输,通用于PHP、Java、C++、C#、Python等编程语言的数据交换传输。它易于人阅读和编写,同时也易于机器解析和生成。
基本结构:对象、数组
二、GSON简介和特点
GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。
特点:快速、高效
代码量少、简洁
面向对象
数据传递和解析方便
三、GSON实例操作
JavaBean转换Json字符串
package com.xuan.gson;
import com.google.gson.Gson;
/**
* @author xuanyouwu
* @email xuanyouwu@163.com
* @time 2016-05-18 10:39
*/
public class GsonTest1 {
public static class Student {
private String name;
private int age;
//省略setter getter equals
}
private static void log(String msg) {
System.out.println(msg);
}
public static void main(String[] args) throws Exception {
Gson gson = new Gson();
Student student = new Student();
student.setName("xuanyouwu");
student.setAge(26);
String jsonStr = gson.toJson(student);
log("---->javabean convert jsonStr:" + jsonStr);
}
}
运行结果:
---->javabean convert jsonStr:{"name":"xuanyouwu","age":26}
Json字符串转JavaBean
String studentJsonStr="{\"name\":\"xuanyouwu\",\"age\":26}";
Student student1 = gson.fromJson(studentJsonStr, Student.class);
log("------->json convert JavaBean:"+student1);
运行结果:
------->json convert JavaBean:Student{name='xuanyouwu', age=26}
List Map转Json字符串
package com.xuan.gson;
import com.google.gson.Gson;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xuanyouwu
* @email xuanyouwu@163.com
* @time 2016-05-18 10:39
*/
public class GsonTest1 {
private static void log(String msg) {
System.out.println(msg);
}
public static void main(String[] args) throws Exception {
Gson gson = new Gson();
List<String> list = Arrays.asList("1", "a", "3", "rt", "5");
log("---->list convert jsonStr:" + gson.toJson(list));
Map<String, Object> content = new HashMap<String, Object>();
content.put("name", "xuanyouwu");
content.put("age", "26");
log("---->map convert jsonStr:" + gson.toJson(content));
}
}
运行结果:
---->list convert jsonStr:["1","a","3","rt","5"]
---->map convert jsonStr:{"name":"xuanyouwu","age":"26"}