在前端開發中,我們經常需要判斷一個字符串是否是 JSON 格式。例如,我們需要通過 Ajax 從后端獲取數據時,就需要先檢查返回的數據是否是 JSON 格式。下面,我們就來介紹一下如何使用 JavaScript 判斷字符串是否為 JSON。
我們可以通過 try catch 語句來檢查一個字符串是否為合法的 JSON 格式。如果字符串不是合法的 JSON 格式,那么在 JSON.parse() 方法中會拋出異常,我們就可以利用這個異常來判斷字符串是否為 JSON。
try { JSON.parse(str); return true; } catch (e) { return false; }
上面代碼中,我們通過調用 JSON.parse() 方法來嘗試將字符串轉換為 JSON 對象。如果字符串不是 JSON 格式,那么在執行 JSON.parse() 方法時會拋出異常,我們就可以利用 catch 語句來判斷字符串是否為 JSON。
下面,我們通過一些例子來說明一下如何使用 JavaScript 判斷字符串是否為 JSON。先看下面的代碼:
var str1 = '{"name": "Jack", "age": 18}'; var str2 = 'hello world'; var str3 = '{"name": "Jack", "age": 18,}'; var str4 = '{"name": "Jack", "age": 18, "friends": [{"name": "Tom"}, {"name": "Jerry"}]}'; console.log(isJson(str1)); // true console.log(isJson(str2)); // false console.log(isJson(str3)); // false console.log(isJson(str4)); // true
在上面的代碼中,我們定義了 4 個變量,分別表示 4 個字符串。str1 和 str4 是 JSON 格式的字符串,而 str2 和 str3 則不是 JSON 格式的字符串。我們通過調用 isJson() 函數來判斷這些字符串是否為 JSON 格式。
function isJson(str) { try { JSON.parse(str); return true; } catch (e) { return false; } }
上面代碼中,我們定義了一個名為 isJson() 的函數。在這個函數中,我們首先通過 JSON.parse() 方法將字符串轉換為 JSON 對象。如果字符串不是 JSON 格式,那么在執行 JSON.parse() 方法時會拋出異常,我們就利用 catch 語句來判斷字符串是否為 JSON。
當我們將上面的代碼運行后,控制臺會輸出 true、false、false 和 true。這表明我們的代碼能夠正常地判斷字符串是否為 JSON,而且對復雜的 JSON 格式的字符串也能夠正確地判斷。
總之,使用 JavaScript 判斷字符串是否為 JSON 的方法十分簡單,只需要通過 try catch 語句來嘗試將字符串轉換為 JSON 對象,如果在轉換時發生異常,那么就說明字符串不是 JSON 格式。