在前端開發過程中,我們經常需要向后端發送請求獲取數據,一般使用ajax或axios等工具。在使用axios獲取數據的過程中,我們常常需要把從后端返回的json字符串轉為對象。本文將介紹如何使用axios接收json并轉為對象。
首先,在使用axios進行數據請求時,需要在請求的配置對象中設置responseType為'json',表示返回的數據類型為json。代碼如下:
axios({ method: 'get', url: 'http://example.com/api', responseType: 'json' }).then(function (response) { console.log(response.data); // 將返回的json字符串轉換為對象 }).catch(function (error) { console.log(error); });
上述代碼通過設置responseType為'json',可以讓axios自動將返回的json字符串轉換為對象,并將對象作為response.data屬性值返回給我們。因此,我們可以直接通過response.data獲取到轉換后的對象。
如果我們需要在后續處理過程中多次使用轉換后的對象,也可以在config對象中設置transformResponse屬性,將返回的json字符串以及響應頭信息全部傳入一個自定義函數進行處理。代碼如下:
var config = { headers: { 'Content-Type': 'application/json' }, transformResponse: [function (data) { return JSON.parse(data); }] }; axios.get('http://example.com/api', config) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); });
上述代碼中,我們在config對象中設置了headers屬性和transformResponse屬性。headers屬性指定請求頭信息中Content-Type為application/json,而transformResponse屬性是一個數組,其中包含一個函數,表示響應數據的處理函數。在該函數中,我們使用JSON.parse方法將返回的json字符串轉為對象。在接收響應數據時,我們可以直接通過response.data獲取到轉換后的對象。
總之,使用axios接收json并轉為對象十分簡單,只需要在請求配置中設置合適的responseType或transformResponse屬性即可完成相關操作。