zoukankan      html  css  js  c++  java
  • 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()这个强大的函数,尽量在开发中不要去使用,避免埋坑
    显示案例 
  • 相关阅读:
    中科燕园GIS外包--移动GIS
    创建二维数组
    DSP开发中遇到的问题
    Unity 2D游戏开发教程之精灵的死亡和重生
    Unity 2D游戏开发教程之摄像头追踪功能
    Unity 2D游戏开发教程之2D游戏的运行效果
    Unity 2D游戏开发教程之使用脚本实现游戏逻辑
    Kail Linux渗透测试教程之免杀Payload生成工具Veil
    Kail Linux渗透测试教程之在Metasploit中扫描
    Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap
  • 原文地址:https://www.cnblogs.com/lich1x/p/13705308.html
Copyright © 2011-2022 走看看