JavaScript基础(17_操作json)

操作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()这个强大的函数,尽量在开发中不要去使用,避免埋坑
显示案例 
posted @ 2020-09-21 14:18  名叫蛐蛐的喵  阅读(109)  评论(0编辑  收藏  举报