JSON

json学习小记

字号+ 作者:H5之家 来源:H5之家 2015-11-10 11:25 我要评论( )

json学习小记,关于JSON,最重要的是要理解它是一种数据格式,不是一种编程语言。JSON的语法可以表示以下三种类型的值:简单值:使用与javascript相同的语法,可

关于 JSON,最重要的是要理解它是一种数据格式,不是一种编程语言。

JSON 的语法可以表示以下三种类型的值:

简单值:使用与 javascript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON 不支持 JavaScript 中的特殊值 undefined。

对象:对象作为一种复杂数据类型,表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值,也可以是复杂数据类型的值。

数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是任意类型–简单值、对象或数组。

最简单的 JSON 数据形式就是简单值,JSON 表示数值 5 的方式:

JSON 表示字符串的方式:

"Hello world!"

JavaScript 字符串与 JSON 字符串的最大区别在于, JSON 字符串必须使用双引号(单引号会导致语法错误)。

与 JavaScript 的对象字面量相比, JSON 对象有两个地方不一样。

首先,没有声明变量( JSON 中没有变量的概念)。

其次,没有末尾的分号(因为这不是 JavaScript 语句,所以不需要分号)。

{
"name": "Nicholas",
"age": 29
}

对象的属性必须加双引号,这在 JSON 中是必需的。属性的值可以是简单值,也可以是复杂类型值。可以像下面这样在对象中嵌入对象:

{
"name": "Nicholas",
"age": 29,
"school": {
"name": "Merrimack College",
"location": "North Andover, MA"
}
}

同一个对象中绝对不应该出现两个同名属性。JSON 表示同一个数组:

[25, "hi", true]

JSON 数组也没有变量和分号。把数组和对象结合起来,可以构成更复杂的数据集合。

[
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
edition: 3,
year: 2011
},
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
edition: 2,
year: 2009
}
]

这个数组中包含一些表示图书的对象。每个对象都有几个属性,其中一个属性是”authors” ,这个属性的值又是一个数组。

对象和数组通常是 JSON 数据结构的最外层形式(当然,这不是强制规定的),利用它们能够创造出各种各样的数据结构。

ECMAScript 5 对解析 JSON 的行为进行规范,定义了全局对象 JSON。支持这个对象的浏览器有 IE 8+、 Firefox 3.5+、 Safari 4+、 Chrome和 Opera 10.5+。

对于较早版本的浏览器,可以使用一个 shim: https://github.com/douglascrockford/JSON-js

JSON 对象有两个方法: stringify() 和 parse() 。在最简单的情况下,这两个方法分别用于把JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值。

JSON.stringify() 把一个 JavaScript 对象序列化为一个 JSON 字符串,然后将它保存在变量 jsonText 中。在序列化 JavaScript 对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined 的任何属性也都会被跳过。结果中最终都是值为有效 JSON 数据类型的实例属性。

将 JSON 字符串直接传递给 JSON.parse() 就可以得到相应的 JavaScript 值。如果传给 JSON.parse() 的字符串不是有效的 JSON,该方法会抛出错误。

JSON.stringify() 方法的第三个参数用于控制结果中的缩进和空白符。如果这个参数是一个数值,那它表示的是每个级别缩进的空格数。

var jsonText = JSON.stringify(book, null, 4);

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

分页:12

转载请注明
本文标题:json学习小记
本站链接:
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。

登录后可拥有收藏文章、关注作者等权限...

   注册     登录

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JS学习笔记9_JSON

    JS学习笔记9_JSON

    2015-11-21 09:00

  • Shunter - a Node.js application built to read JSON and trans

    Shunter - a Node.js application built to read JSON and trans

    2015-11-17 11:39

  • 使用Grunt构建自动化开发环境

    使用Grunt构建自动化开发环境

    2015-10-24 10:41

  • 学习笔记-AngularJs(十)

    学习笔记-AngularJs(十)

    2015-10-20 10:02

网友点评