web-dev-qa-db-ja.com

AxiosでJSON解析を無効にする

Ichにはreactアプリケーションがあり、ユーザーがコードファイルをアップロードして、サイトで確認できるようにしたいと考えています。したがって、当然、.jsonファイルも受け入れられます。ここで、ファイルの内容を取得するために、axiosを使用して、サーバー上のファイルに対してget要求を行います。

これは、JSONファイルを除いてすべて正常に機能します。JSONファイルは自動的に解析されるため、文字列としてではなく、JavaScriptオブジェクトとして使用できます。次に、JSON.stringifyを使用して再度文字列に変換すると、すべての改行が削除されるため、それを行うことはできません。

AxiosがJSONを自動的に解析しないようにする方法はありますか?

10
LuLeBe

LuleBesの答えは私にはうまくいきませんでした。動作したのは:transformResponse: (req) => { return res; },次のように:

    axios.get(url, {
        headers,
        transformResponse: (res) => {
            // Do your own parsing here if needed ie JSON.parse(res);
            return res;
        },
        responseType: 'json'
    }).then(response => {
        // response.data is an unparsed string
    });
12
user3711421

わかりました、それがどのように機能するかを理解しました。構成でtransformResponse配列を渡すだけで、応答処理を無効にできます。これは、デフォルトの代わりに使用されます。そこで、次のように、応答に適用する必要のある空の配列または関数の配列を指定するだけです。

axios.get(URL, {transformResponse: []})
.then(response => {/*response.data is plain text*/});
1
LuLeBe