Gson是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
类似阿里巴巴的FastJson
一、前言
因为json有2种类型:
一种是对象,object -> {key:value,key:value,…} 。
另一种是数组,array -> [value,value,…] 。
所以针对这两种类型,来展开对json数据的操作。
GSON在解析json的时候,大体上有2种类型,一种是直接在内存中生成object或array,通过手工指定key来获取值;另一种是借助javabean来进行映射获取值。
二、对 json 数据进行反序列化,得到java 对象
1、不借助java 类,直接解析json 数据
1.1、json 是对象类型
当ajax传过来的json数据属于对象时,不论这个对象简单还是复杂,都可以轻松地把它们给解析出来。
ajax传过来的json数据(是对象形式):
var data_json = {
"sex": '男',
"hobby":["baskte","tennis"],
"introduce": {
"name":"tom",
"age":23
}
};
data: JSON.stringify(data_json),
GSON解析:
BufferedReader reader = request.getReader();
// 读取json数据
StringBuffer buffer = new StringBuffer();
String s;
while ((s = reader.readLine()) != null) {
buffer.append(s);
}
String json = buffer.toString();
System.out.println("json:" + json);
// json解析器,解析json数据
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(json);
// json属于对象类型时
if (element.isJsonObject()) {
JsonObject object = element.getAsJsonObject(); // 转化为对象