在前端開發中,json是十分常見的一種數據格式,而json的特別之處在于它使用了雙引號作為屬性名和字符串值的標識符,這在前端開發中是非常便捷的。但是,當我們將json數據傳遞給后臺時,后臺往往需要使用單引號來作為屬性名和字符串值的標識符,這就需要我們在前端開發中進行相應的處理了。
// 以使用jquery的ajax為例 $.ajax({ type: 'POST', url: '/post-json-data', data: JSON.stringify({'name': 'Tom'}), contentType: 'application/json', dataType: 'json', success: function(data) { console.log(data.message); } });
如上所示,我們使用了JSON.stringify方法將json數據轉換為字符串,并使用contentType設置請求頭的Content-Type為"application/json",這樣后臺才能夠正確地解析出json數據。但是,這樣的json數據中使用了雙引號作為標識符,如果后臺需要使用單引號的話就會出現解析錯誤。那么怎么辦呢?
// 將json數據中雙引號替換為單引號 var jsonStr = JSON.stringify({'name': 'Tom'}).replace(/\"/g, "'"); $.ajax({ type: 'POST', url: '/post-json-data', data: jsonStr, contentType: 'application/json', dataType: 'json', success: function(data) { console.log(data.message); } });
解決方案就是使用正則表達式將json數據中的雙引號替換為單引號即可。如上所示,在調用$.ajax方法之前,我們先將json數據中的雙引號替換為單引號,然后將處理后的json數據作為請求數據傳遞給后臺。這樣,即使后臺使用單引號作為標識符,也能夠正常解析出json數據了。
上一篇json怎么給后臺傳參
下一篇ajax怎么帶cas會話