【FastJson】 简单使用

【FastJson】 简单使用

一、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}