继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

json学习心得

HXW_from_DJTU
关注TA
已关注
手记 4
粉丝 57
获赞 1059

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);

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

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

打开App,阅读手记
45人推荐
发表评论
随时随地看视频慕课网APP

热门评论

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


数组里的不用加逗号分隔?

不是优先解析js,是解析之后,函数会先自执行,然后在执行你想执行的。

为何eval()方法会优先解析js方法?

查看全部评论