简介:
json 是一种数据格式,本质上是字符串。比 xml 格式简单,所以适合前后端交互和后台传递简单数据
java 解析 Json 最常用的类库有:google 的 Gson、阿里巴巴的 FastJson、以及 Jackson。spring提供了@ResponseBody
js 解析 json 对象 用 json
- 对象表示为键值对
- 花括号保存对象
- 方括号保存数组
- 数据由逗号分隔
前端:
JSON.parse() 从一个字符串中解析出json对象,获取属性
JSON.stringify() 从一个对象中解析出字符串
后端:
JsonObject
依赖
com.google.gson.JsonObject :组装json对象
com.google.gson.Gson :对象 和 字符串 相互映射
com.google.gson.JsonElement :数组对象 对象的 组装元素
java对象(将基本数据类型、以及 POJO 对象、List、Map 等) 转 json格式字符串:
Object obj;
Gson gson = new Gson();
String jsonStr = gson.toJson(obj);
//obj 对应 list,java实体类,字符串
[{"id":1,"heroName":"a1","power":"12","agile":"11"},{"id":2,"heroName":"a2","power":"12","agile":"11"}]
{"id":1,"heroName":"a1","power":"12","agile":"11"}
"aa"
组装 不同的java 对象 (map?)转 json字符串
JsonObject json = new JsonObject();
Gson gson = new Gson();
HeroModel a1 = new HeroModel("a1","11","11",1);
HeroModel a2 = new HeroModel("a2","22","22",2);
list.add a1,a2
json.addProperty("String", "张三");
JsonElement c1 = gson.toJsonTree(list);
json.add("list", c1);
System.out.println(json.toString());
//输出结果
{"String":"张三","list1":[{"id":1,"heroName":"a1","power":"11","agile":"11"},{"id":2,"heroName":"a2","power":"22","agile":"22"}]}
json字符串 转 对象(list,实体类,map)
//s1 对象的json字符串 s2:list对象的json字符串 s3:JsonObject对象的json字符串
HeroModel r1= (HeroModel)gson.fromJson(s1, HeroModel.class);
List<HeroModel> r2= gson.fromJson(s2,List.class);
Map r3 = gson.fromJson(s3, Map.class);
@ResponseBody:自动将返回值转化成json字符串。一个注解解决问题