一、FastJson 简单使用
下面是几个常用的 JSON 解析类库:
- Gson: 谷歌开发的 JSON 库,功能十分全面。
- FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
- Jackson: 社区十分活跃且更新速度很快。
1.依赖
添加依赖,我这里使用的阿里巴巴的fastjson。
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.68</version>
</dependency>
编写Controller,用于测试
主要为以下两种:
- Java对象 转 JSON字符串
- json字符串 转 Java对象
2.测试类
@RestController
public class JsonController {
/*
JSON字符串格式:{"?":"?","key":"value"}
*/
/** Java对象(ModelMap) 转 JSON字符串 */
@GetMapping(path = "j1", produces = "application/json; charset=utf-8")
public String json01(ModelMap mp) {
mp.put("键", "值");
mp.put("key", "value");
// Java 对象(ModelMap) 转 --> JSON 字符串
String json = JSON.toJSONString(mp);
return json;
}
/** Java对象(ModelMap) 转 JSON字符串 */
@GetMapping(path = "j2", produces = "application/json; charset=utf-8")
public String json02(ModelMap mp) {
mp.put("键", "值");
mp.put("key", "value");
// Java 对象(ModelMap) 转 --> JSON 对象(JSONObject对象)
JSONObject jsonObject = (JSONObject) JSON.toJSON(mp);
// JSON 对象(JSONObject) 转 --> json 字符串
String json = jsonObject.toJSONString();
return json;
}
/** json字符串 转 Java对象(JSONObject对象) */
@GetMapping(path = "j3", produces = "text/html; charset=utf-8")
public String json03() {
String json = "{'键':'值','key':'value'}";
// json字符串 转 --> JSON对象(JSONObject对象)
JSONObject jo = (JSONObject)JSON.parse(json);
// 输出Java对象(JSONObject)的字符串形式
return jo.toJSONString();
}
/** json字符串 转 Java对象(Map对象) */
@GetMapping(path = "j4", produces = "text/html; charset=utf-8")
public String json04() {
String json = "{'键':'值','key':'value'}";
// json字符串 转 --> Java对象(Map对象)
Map map = JSON.parseObject(json, Map.class);
// 输出Java对象(Map)的字符串形式
return map.toString();
}
}
浏览器访问输出:分别是
前两个是一样的。
{"键":"值","key":"value"}
{"键":"值","key":"value"}
第三个是java中的JSONObject对象的字符串形式。
{"键":"值","key":"value"}
第四个是java中的Map对象的字符串形式。
{键=值, key=value}