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来进行映射获取值。
当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(); // 转化为对象
-