在前后端分離的開發(fā)過程中,前端的請(qǐng)求使用的是ajax、fetch 等方式,而 axios 因?yàn)槠湟子眯院挽`活性而成為現(xiàn)在開發(fā)中最常用的請(qǐng)求方式之一。在使用 axios 時(shí),返回的數(shù)據(jù)可能為 JSON 字符串,需要將其轉(zhuǎn)換為 JS 對(duì)象進(jìn)行使用。那么,如何將 axios 返回的 JSON 字符串轉(zhuǎn)換為 JS 對(duì)象呢?下面我們來一步步介紹。
首先,axios 的使用可以參考以下代碼:
axios.get('/user') .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); });
在此處使用了 axios 的 get 方法發(fā)送了一條 GET 請(qǐng)求,這個(gè)請(qǐng)求返回的數(shù)據(jù)在響應(yīng)的 response 中,我們可以通過 response.data 來獲取。
如果數(shù)據(jù)是 JSON 格式的字符串,那么我們需要使用 JSON.parse() 方法將其轉(zhuǎn)換為 JS 對(duì)象。代碼如下:
axios.get('/user') .then(function (response) { var data = JSON.parse(response.data); console.log(data); }) .catch(function (error) { console.log(error); });
在這段代碼中,我們使用 JSON.parse() 方法將 response.data 轉(zhuǎn)換為 JS 對(duì)象,并賦值給了變量 data。之后就可以使用 data 來處理返回的數(shù)據(jù)了。
需要注意的是,在轉(zhuǎn)換 JSON 字符串時(shí),如果返回的數(shù)據(jù)中存在某些不合法的 JSON 格式,轉(zhuǎn)換會(huì)拋出 SyntaxError 錯(cuò)誤。因此,我們需要在使用 JSON.parse() 方法時(shí)加上錯(cuò)誤處理。代碼如下:
axios.get('/user') .then(function (response) { try { var data = JSON.parse(response.data); console.log(data); } catch (e) { console.log('數(shù)據(jù)格式錯(cuò)誤'); } }) .catch(function (error) { console.log(error); });
通過在 JSON.parse() 方法中使用 try-catch 方法,在數(shù)據(jù)格式有誤時(shí),程序可以正常處理錯(cuò)誤,并輸出錯(cuò)誤信息,方便開發(fā)者進(jìn)行調(diào)試。