zoukankan      html  css  js  c++  java
  • JSON学习心得

    JSON学习心得
    **关于JSON的几点概念**
     1. JSON(JavaScript Object Notation 即 JavaScript对象表示法)
     2. JSON类似于XML,都是用于从储存和交换文本信息的语法。
     3. JSON采用键值对的方式来阻止。
     4. JSON是独立于语言的,不管什么语言,只要遵循JSON的规则,都可以解析JSON

    **JSON与XML的比较**

     - JSON的长度较XML比起来更加短小
     - JSON在网络上的传输速度更加快
     - JSON可以被JS的内建方法直接进行解析,很方便地转换成JS对象。而JS解析XML的话就十分复杂。

    **JSON的与法规则**

     1. JSON的基本书写规则是:`名称/值对`   比如 `"person":"小明"`
     2. JSON的值可以是一下的类型:
    数字(整数或者浮点数)
     字符串(双引号中)
     逻辑值(true或false)
    数组(在方括号中)
    对象(在花括号中)
    null
    一个JSON对象的示例:

    ```

    {
    "staff":[
           {“name”:“小李”}
           {“name”:“小牛”}
           {“name”:“小黄”}
      ]
    }


    ```
    表示一个json对象叫staff,它的值是一个对象数组,数组元素又是三个json对象。

    **JSON解析**

     1. 采用JSON.parse()方法

    ```

    var jsondata ='{"staff":[{"name":"小李","height":"180cm"},
                                         {"name":"小赖","age":"165cm"},
                                          {"name":"小牛","height":"185cm"}
                                      ]
                               }';
    var jsonobj=JSON.parse(jsondata);
    alert(jsonobj.staff[0].name);


    ```
    上面例子,浏览器提醒“小李”
    2、采用eval()方法解析(十分危险的一种方法)
    eval()方法不管值的格式正确与否,JSON中里包涵的一些JS方法会被直接执行容易被插入恶意代码

    ```

    var jsondata ='{"staff":[{"name":"小李","height":alert(哈哈哈,我被执行了)},
                                         {"name":"小赖","age":"165cm"},
                                          {"name":"小牛","height":"185cm"}
                                      ]
                               }';
    var jsonobj=JSON.parse(jsondata);
    alert(jsonobj.staff[0].name);


    ```
    如上代码,浏览器先弹出" 1 哈哈哈,我被执行了 ",然后再弹出 小李 。
    如果alert()部分是恶意代码,就会出现麻烦的事情了。(无论何时使用eval()方法其实都是不安全的)

    本文由本人总结自慕课网@WayneJ的ajax全接触课程链接描述,代码与截图非原创,仅供学习,如有侵权请私信告知。

  • 相关阅读:
    apns libcurl
    apns libcurl
    epoll
    epoll
    Linux服务器压测
    Linux服务器压测
    libevent
    libevent
    shell脚本
    shell脚本
  • 原文地址:https://www.cnblogs.com/HXW-from-DJTU/p/5581374.html
Copyright © 2011-2022 走看看