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

JSON

2016-05-12 17:55 561 查看

介绍

JavaScript Object Notation( JavaScript 对象表示法 )是一种轻量级的数据交换格式. 尽管只是JavaScript的一个子集, 但它与语言无关. 它被用于现代编程语言编写的程序之间交换数据. 它是一种文本格式, 所以可以被人和机器阅读, 它易于实现且易于使用. 大量关于JSON的资料都可以在 http://www.json.org中找到.

语法

JSON有6中类型的值: 对象, 数组, 字符串, 数字, 布尔值和特殊值null.

JSON对象是一个容纳”key/value”对的无序集合. 键可以是任何字符串, 值可以是任何类型的JSON值, 包括数组和对象. JSON对象可以被无限层地嵌套, 但一般来说保持其结构的相对扁平式最高效的. 大多数语言都有容易被映射为JSON对象的数据类型, 比如对象( object ), 结构( struct ), 字典( dictionary ), 哈希表( hash table ), 属性列表( property list )或关联数组( associative array ).

JSON数组是一个值的有序序列. 其值可以是任意类型的JSON值, 包括数组和对象. 大多数语言都有容易被映射为JSON数组的数据类型, 比如数组( array ), 向量( vector ), 列表( list )或序列( sequence ).

JSON数据

JSON普通对象( JavaScript对象 )

var obj = {
"name" : "Nicholas",
"age" : 29
};


嵌套对象

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


JSON数组( JavaScript数组 )

var values = [25, "hi", true];


嵌套数组

var values = [
{
"班级" : "三年二班",
"人数" : 2,
"组成" : [
{
"name" : "Mike",
"age" : 19
},
{
"name" : "Jack",
"age" : 20
}
]
}
];


序列化与解析

早期的JSON解析器基本上就是使用JavaScript的eval()函数, 但由于使用eval()对JSON数据结构求值存在风险, 因此可能会执行一些恶意代码. 于是乎, JSON对象就诞生了.

JSON对象有两个方法: stringify() 和 parse() , 分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值.

JSON.stringify( obj )

var student = {
name : "xiaoming",
age : 18
};
var jsonText = JSON.stringify(student);
alert(jsonText);//'{"name":"xiaoming","age":18}'


JSON.parse( string )

var jsonText = '{"name":"xiaoming","age":18}';
alert(typeof jsonText);//"string"
var student = JSON.parse(jsonText);
alert(typeof student);//"object"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: