javascript代码实例教程-JS学习笔记9_JSON

发布时间:2019-01-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-JS学习笔记9_JSON脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 1.JSON概述

 

JavaScript Object Natation,js对象表示法,(像XML一样)是一种数据格式,它与js有相同的语法形式

 

P.S.一点小历史:JSON之父是道格拉斯,《JavaScript语言精粹》的作者,创造JSON的灵感来自js中的字面量表示法

 

2.JSON语法

 

1.表示简单

 

例如3, “str”, null, false等等,不支持undefined,而且字符串必须用双引号(JSON里没有单引号表示字符串的用法,这与js不同)

 

2.表示对象

 

与js对象字面量类似,但

 

没有变量声明

 

没有末尾分号

 

属性名必须用双引号包裹(很容易错写成单引号或者忘记用引号)

 

例如:

 

{

  "name" : "ayqy",

  "sex" : ";m",

  "nextSibling" : {

    "name" : "xxx",

    "sex" : "M",

    "nextSibling" : null

  }

}

3.表示数组

 

与数组字面量类似,但

 

没有变量声明

 

没有末尾分号

 

例如:

 

 

[3, 6, false, "ayqy", {"name" : "xxx", "age" : 18}]

4.复杂数据结构

 

数组和对象之间可以通过嵌套来创造更复杂的数据结构,例如:

 

 

[

  1,

  {

    "extra" : [

      6,

      {

        "id" : 5,

        "attr" : "value"

      },

      false

    ],

    "index" : 1001

  },

  2

]

3.序列化(js对象转JSON)

 

[IE8+]和其它主流浏览器有内置JSON对象,可以调用原生方法来序列化js对象:

 

 

JSON.stringify(obj);//按照默认规则序列化,值为undefined和值为函数的属性将被忽略

JSON.stringify(obj, arr/fun(key, value));//支持过滤一部分属性(只保留arr中列出的属性或者用fun来过滤)

JSON.stringify(obj, null, num/strPRefix);//支持格式化,自动换行并每级缩进num个空格或者每级添加一个前缀串

对于[IE7-]如何支持,我们稍后再议

 

4.解析(JSON转js对象)

 

 

JSON.parse(str);//直接解析

JSON.parse(str, fun(key, value));//按fun解析

对于[IE7-]如何支持,我们稍后再议

 

5.跨浏览器的JSON序列化/解析

 

对于不支持JSON对象的浏览器可以用一个shim(一个小语):

 

 

 

说白了就是个小型js库(压缩之后4KB而已),提供JSON解析和序列化功能。当然,也可以直接用jquery

 

道格拉斯还提供了额外的JSON支持(除基本的stringify和parse外):

 

json2.js: 如果不存在内置JSON对象的话,会给全局对象添个JSON属性,属性值是一个对象,有stringify和parse方法。parse用的是eval方法解析,还用了几个正则表达式检测,止执行非JSON代码。在现代浏览器中这个js文件啥也不做,原生支持优先。如果不是要支持[IE8-]的话,就不要用这个,也就是说这个文件并不是必须的。

 

json.js: 本文件包含json2.js的所有功能,还给Object的原型添了toJSONString方法和parseJSON方法,建议不要用。

 

json_parse.js: 本文件给了parse函数的另一种实现:用递归下降(P.S.语法分析器。。好吧,道格拉斯大爷战斗力略强)代替了eval函数

 

json_parse_state.js: 本文件给了parse函数的另一种实现:用状态机(P.S.。。。)代替了eval函数

 

cycle.js: 本文件有两个函数:JSON.decycle和JSON.retrocycle,用来消除/恢复JSON中的环和图结构,JSONPath用来表示数据关系

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-JS学习笔记9_JSON全部内容,希望文章能够帮你解决javascript代码实例教程-JS学习笔记9_JSON所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。