您的位置:首页 > Web前端 > JavaScript

JSON简介

2016-06-15 16:40 260 查看
1、JSON是一种数据格式,不支持变量、函数和对象实例,可以表示以下三种类型的值:

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

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

数    组:表示一组有序的键值列表,可以通过数值索引来访问其中的值,数组的值也可以是任意类型——简单值、对象和数组。

2、简单值:

eg:5

这是JSON表示数值5的方式,类似地,字符串表示:"Hello world!"。Javascript字符串与JSON字符串最大的区别在于,JSON字符串必须使用双引号(单引号会导致语法错误),布尔值和null也是有效的JSON的形式。

3、对象:

JSON中的对象与Javascript有点不同。javascript中如下:

var  person = {

name:  "Nicholas",

age:  29

};

实际上,javascript中完全可以这样写:

var  person = {

"name":  "Nicholas",

"age":  29

};

JSON表示上述对象方式如下:

{

"name":  "Nicholas",

"age":  29

} //与javascript相比,末尾没有分号,没有声明变量(JSON中没有变量的概念)。并且JSON中对象的属性名任何时候都必须加双引号

也可以在对象中嵌入对象:

{
"name":  "Nicholas",
"age":  29,
"school": {
"name": "collegeName",
"location":
"locationName"
}
}
虽有有两个name,但同属于不同的对象,因此这样没问题。不过同一对象中绝对不应该出现两个同名属性。
4、数组:
Javascript中数组字面量如下:
var value = [25, "hi", true];
在JSON中同样的语法如下:[25, "hi", true],结尾也没有分号。
5、解析与序列化:
早期的JSON解析器基本上使用Javascript的eval()函数,可以解析、解释并返回Javascript对象和数组。ECMAscript5对解析JSON行为进行了规
范,定义了全局对象JSON。在旧版本浏览器中,使用eval()对JSON数据结构求值存在风险,因为可能会执行一些恶意代码。
JSON对象有两个方法:stringify()和parse()。在简单的情况下,这两个方法分别用于把javascript对象序列化为JSON字符串和把JSON字符串解
析为原生的javascript值。有时候JSON.stringify()不能满足对某些对象进行自定义序列化的需求,在这种情况下可以给对象定义toJSON()方法,
返回其自身的JSON格式。

参考自《JavaScript高级程序设计》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json