Java RestfulスタイルのAPI定義インターフェースのエントリとリターン値符号化UTF-8

2907 ワード

プロジェクトは対外的にインターフェースを提供しますが、戻り値は中国語で文字化けしています。外部システムが呼び出したインターフェースのパラメータと戻り値は、UTF-8符号化されたJSONフォーマットでなければならないため、インターフェース定義は次のような処理が必要である。
@RequestMapping(value = "/doAAA", method = RequestMethod.POST,headers = "Content-type=application/json;charset=UTF-8",produces = "text/html;charset=utf-8")
    @ResponseBody
    public String doApproval(@RequestBody MobileApprovalDoAssistParameter doAssistParameter) throws Exception {
        log.info("***********receive doAssist json:"+ JSONObject.toJSONString(doAssistParameter));
        MobileApprovalResponseDTO mobileApprovalResponseDTO = iMobileApprovalService.doAssist(doAssistParameter);
        return JSONObject.toJSONString(mobileApprovalResponseDTO);

    }
備考:上記は自分のパッケージのインターフェースです。入力はjson形式であり、かつ、utf-8符号化であり、戻り値はtext/htmlを定義しています。charset=utf-8は、自分のコードの中で手動で対象をJSON形式の文字列に変換しましたので、text/html形式を直接定義すればいいです。もし方法が戻ってくるのがオブジェクトなら、appication/jsonと定義できます。charset=UTF-8なら、方法が戻ったら自動的にjsonに変えてくれます。これは自分の実際の使用状況によって、自分で処理すればいいです。参加は符号化です。headers="Content-type=appliation/json;charset=UTF-8"の戻り値:produces="text/html、charset=utf-8"