eval() 是 JavaScript 中定義的一個函數,它可以將一個字符串作為代碼進行解析和執行。在處理 JSON 數據時,我們可以利用 eval() 函數將 JSON 字符串轉換為 JavaScript 對象。
var jsonObj = '{"name": "Tom", "age": 20, "gender": "male"}'; var obj = eval('(' + jsonObj + ')'); // 使用 eval() 函數解析 JSON 字符串 console.log(obj); // 輸出解析后的 JavaScript 對象
需要注意的是,在使用 eval() 函數解析 JSON 字符串時,需要在 JSON 字符串外面加上括號,并且字符串中的屬性名必須用引號包裹。否則會出現語法錯誤。
var jsonObj = '{name: "Tom", age: 20, gender: "male"}'; // 屬性名未加引號 var obj = eval('(' + jsonObj + ')'); // 使用 eval() 函數解析 JSON 字符串 console.log(obj); // 輸出語法錯誤
為了安全起見,在實際使用中,我們通常使用 JSON.parse() 函數替代 eval() 函數進行 JSON 字符串的解析。JSON.parse() 函數只能解析符合規范的 JSON 數據,而且不會執行任何代碼,避免了 eval() 函數可能存在的安全問題。
var jsonObj = '{"name": "Tom", "age": 20, "gender": "male"}'; var obj = JSON.parse(jsonObj); // 使用 JSON.parse() 函數解析 JSON 字符串 console.log(obj); // 輸出解析后的 JavaScript 對象