JavaScript基礎(17_操作json)
阿新 • • 發佈:2020-09-21
操作json
-
json
-
js中的物件 只有js自己認識,其他語言都不認識
-
json就是一個特殊格式的字串
-
這個字串可以給任何語言識別,並且可以轉為任意語言中的物件
-
json在開發中主要用來資料互動
-
-
json
-
Javascript Object Notation JS物件表示法
-
JSON 和 js物件格式一樣,只不過json字串中的屬性名,必須加雙引號 必須加雙引號 必須加雙引號
-
其他和js語法一致
-
-
-
JSON物件分類
-
物件 {}
-
陣列 []
-
-
JSON中允許的值
-
字串
-
數值
-
布林值
-
null
-
物件
-
陣列
-
-
將json字串轉換為js中的物件
-
在js中,為我們提供了一個工具類,就叫JSON
-
這個物件可以幫我們將JSON和js物件互相轉換
-
案例
// json陣列 // var arr = '[1,2,3,4,"hello",true]'; // json物件 var json_obj = '{"name":"swk", "age":18, "gender":"male"}'; var json_arr = '[1,2,3,4,"hello",true]'; // 將json 轉換為 js物件 /* JSON.parse() - 可以 將JSON字串轉為js物件 - 他需要一個JSON字串作為引數,會將該字串傳轉換為JS物件顯示案例*/ var obj = JSON.parse(json_obj); console.log(obj.name); console.log(typeof obj) var arr = JSON.parse(json_arr); console.log(arr[5]); // 將js物件 轉換為 JSON /* JSON.stringify() - 可以 將一個js物件轉換為JSON字串 - 他需要一個js物件為引數,會返回一個JSON字串傳 */ var arr1 = {name:"豬八戒", age:28, gender:"男"};var str = JSON.stringify(arr1); console.log(str); // JSON這個js中的類,在IE7及一下版本的瀏覽器中不支援 ,所以這些瀏覽器中呼叫時會報錯 // 假設需要相容IE7 或者說 某些瀏覽器中沒有 JSON物件的時候,需要使用eval()這個函式來操作 /* eval() - 這個 函式可以用來執行一段字串形式 的JS程式碼,並將執行結果返回 - 如果使用eval()執行的字串中含有{},它會將{}當成是程式碼塊 如果不希望將其當成程式碼塊解析,則需要在字串前後各加一個(),這樣eval()函式就不會執行 - eval()這個函式功能很強大,可以直接執行一個字串中的js程式碼 但是在開發中儘量不要使用,首先他的執行效能比較差 然後它還是具有安全隱患 */ var str1 = '{"name":"豬八戒","age":28,"gender":"男"}'; var str2 = "alert('hello');"; // 直接將str2裡面的js程式碼執行了 eval(str2); var str_json = eval("("+str1+")"); console.log(str_json); console.log(typeof str_json); // 為了相容IE7及以下版本的最終方案,是自定義一個JSON物件,與之前的一模一樣,來進行處理 // 這樣更安全、也更高效,而eval()這個強大的函式,儘量在開發中不要去使用,避免埋坑