1. 程式人生 > >Spring MVC 返回的 JSON 帶有斜槓 轉義

Spring MVC 返回的 JSON 帶有斜槓 轉義

我的框架是會在返回型別上加一個包裝結果,但是我留了一個缺口,就是返回String 不會包裝。最近寫了一個介面,因為是以前的介面返回,不能改返回結果,所以我返回String 不會被包裝,程式碼如下:

    @RequestMapping(value = "webSwitch")
    public Object webSwitch() {
        JsonObject result = new JsonObject();
        result.addProperty("success", 200);
        result.addProperty("message", "ok");
        result.addProperty("openWeb", showWebVO.getOpenWeb());

        return result.toString();
    }

測試結果返回的結果 帶有反斜槓,不能被json 解析。結果如下:

"{\"success\":200,\"message\":\"ok\",\"openWeb\":true,\"webUrl\":null}"

原因分析:因為 我的框架裡面把 CustomGsonMessageConvertor 放在第一位,所以預設用它來write response。結果 gson 寫字串時候 發現有 json格式的特殊字元就會加轉義。

搞清楚原因之後,新增 produces = “text/plain” 被 StringhttpMessageConvertor 寫回就沒事了。