JSON語法格式
一、JSON數據格式
名稱/值對
二、JSON值對數據類型
數字 字符串 邏輯值 數組(在方括號中) 對象 (在花括號中) null
eg:
{
"staff":[
{"name":"小明","age":"18"},
{"name":"小紅","age":"15"},
{"name":"小黃","age":"20"}
]
}
三、JSON解析
eval和Json.parse
eval在代碼中使用很危險,特別是用它執行第三方的Json數據(其中可能包含惡意代碼)時,盡可能使用JSON.parse()方法解析字符串本身,該方法可以捕獲JSON中的語法錯誤
eg1:
(1) var jsondata=‘{"staff":[{"name":"小明","age":"18"},{"name":"小紅","age":"15"},{"name":"小黃","age":"20"}]}‘;
var jsonbj=eval(‘(‘+jsondata+‘)‘);
alert(jsonbj.staff[0].name)
(2) var jsondata=‘{"staff":[{"name":"小明","age":"18"},{"name":"小紅","age":"15"},{"name":"小黃","age":"20"}]}‘;
var jsonbj=JSON.parse(jsondata)
alert(jsonbj.staff[0].name)
eg2:
(1) var jsondata=‘{"staff":[{"name":"小明","age":alert(123)},{"name":"小紅","age":"15"},{"name":"小黃","age":"20"}]}‘;
var jsonbj=eval(‘(‘+jsondata+‘)‘);
alert(jsonbj.staff[0].name)
會先彈出123,再彈出小明
(2) var jsondata=‘{"staff":[{"name":"小明","age":"18"
var jsonbj=JSON.parse(jsondata);
alert(jsonbj.staff[0].name)
會報錯Uncaught SyntaxError: Unexpected identifier
四、JSON校驗工具(https://jsoncompare.com/#!/simple/)
JSON語法格式