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