在前端開(kāi)發(fā)中,我們經(jīng)常需要將json數(shù)據(jù)轉(zhuǎn)換成對(duì)象進(jìn)行處理,這時(shí)候就需要使用到JSON.parse()方法。這個(gè)方法可以將一個(gè)符合JSON格式的字符串解析成一個(gè)JavaScript對(duì)象。
var jsonStr = '{"name":"Tom","age":18}'; var obj = JSON.parse(jsonStr); console.log(obj.name); // 輸出:Tom console.log(obj.age); // 輸出:18
上述代碼中,我們定義了一個(gè)jsonStr變量,并將一個(gè)符合JSON格式的字符串賦值給它。然后,我們調(diào)用JSON.parse()方法將jsonStr解析成一個(gè)JavaScript對(duì)象,并把結(jié)果賦值給obj變量。我們可以通過(guò)訪問(wèn)obj對(duì)象的屬性來(lái)獲取JSON中的數(shù)據(jù)。
如果JSON字符串格式不正確,那么JSON.parse()方法將會(huì)拋出異常,需要使用try-catch語(yǔ)句進(jìn)行捕獲。
try { var jsonStr = '{"name":"Tom","age":18"; // 缺少雙引號(hào) var obj = JSON.parse(jsonStr); } catch (e) { console.log(e); // 輸出:SyntaxError: JSON.parse: expected property name or '}' }
除了將JSON格式的字符串轉(zhuǎn)換成JavaScript對(duì)象,我們還可以將JavaScript對(duì)象轉(zhuǎn)換成JSON格式的字符串。這時(shí)候可以使用JSON.stringify()方法,它將一個(gè)JavaScript對(duì)象轉(zhuǎn)換成符合JSON格式的字符串。
var obj = {name: 'Tom', age: 18}; var jsonStr = JSON.stringify(obj); console.log(jsonStr); // 輸出:{"name":"Tom","age":18}
上述代碼中,我們定義了一個(gè)JavaScript對(duì)象obj,并將其中的數(shù)據(jù)通過(guò)JSON.stringify()方法轉(zhuǎn)換成了一個(gè)JSON格式的字符串。這個(gè)字符串可以被其它程序或者服務(wù)端解析并使用。