SpringBootによって返されるJSONはスラッシュでエスケープされます

私のフレームワークは戻り値の型にパッケージ化の結果を追加しますが、ギャップを残しました。つまり、返される文字列はラップされません。最近インターフェイスを作成しましたが、前のインターフェイスから返されるため、返される結果を変更できないため、返される文字列はラップされません。コードは次のとおりです。

    @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を配置したため、デフォルトでこれを使用して応答を記述します。その結果、gsonが文字列を書き込むと、json形式の特殊文字があることがわかり、エスケープされます。

理由を理解した後、addはproduces = "text / plain"を生成し、StringhttpMessageConvertorによって書き戻されます。

おすすめ

転載: blog.csdn.net/CharlesYooSky/article/details/109477983