操作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()这个强大的函数,尽量在开发中不要去使用,避免埋坑