在開發過程中,我們常常需要將字符串轉為json對象,以便操作數據。javascript中提供了一個函數可以實現該功能,它就是 eval()。eval()函數的作用是把傳入的字符串當作javascript代碼來執行,在這種情況下,可以將一個包含json格式數據的字符串轉為javascript對象。
let str = '{"name": "John", "age": 30, "city": "New York"}'; let obj = eval('(' + str + ')'); console.log(obj); // 輸出:{name: "John", age: 30, city: "New York"}
上面的代碼中,我們使用了 eval() 函數將一個包含了json格式數據的字符串轉換為了一個javascript對象。需要注意的是,由于eval()函數會把字符串當作javascript代碼來執行,如果字符串中包含了一些惡意的代碼,那么就可能會造成安全問題。
為了避免這種安全問題,我們可以使用 JSON.parse() 函數來代替 eval(),JSON.parse() 可以更加安全地將字符串轉為json對象,而且性能更好。
let str = '{"name": "John", "age": 30, "city": "New York"}'; let obj = JSON.parse(str); console.log(obj); // 輸出:{name: "John", age: 30, city: "New York"}
上面的代碼中,我們使用了 JSON.parse() 函數將一個包含了json格式數據的字符串轉換為了一個javascript對象。需要注意的是,JSON.parse() 函數要求字符串中所有的屬性名和字符串都必須使用雙引號,不能使用單引號。
綜上所述,eval()函數可以將字符串轉換為json對象,但安全性較差,不建議使用;而JSON.parse()函數可以更加安全地將字符串轉為json對象,建議使用。