JSON数据格式与JavaScript中的JSON对象

转载自  

https://itbilu.com/javascript/js/Vkmh3oeOg.html

JSON(JavaScript Object Notation,JavaScript对象标记)是一种轻量级的轻量级的数据交换语言,是ECMAScript的一个子集。JSON是独立于语言的一种文本格式,这种格式非常易于人的阅读和编写,也易于机器的解析。由于没有过多的描述标记,在网络传输中有较高的传输效率,是一种理想的数据交互格式。

JSON特点

JSON值类型

JavaScript中的JSON对象

3.1eval()函数与JSON对象

3.2JSON对象中的方法

1. JSON特点

JSON是ECMAScript的子集,其与JavaScript中的对象结构类似,是一种键/值(key/value)对的形式。一个JSON结构如下:

{

"name":"IT笔录",

"domain":"www.itbilu.com",

"menus":["Node.js","JavaScript","数据库","Linux"],

"config":

{

"db":"dbPath",

"host":"192.168.1.22",

"port":80

}

}

结合上例,JSON特征如下:

JSON数据包含在一个大括号{}中,由{开始,}结束

JSON的键/值由:分隔,如:"name":"IT笔录"

JSON的键必须使用双引号""

每组键/值对使用,分隔,且最后一个属性后面不能有逗号。

JSON的值根据数据类型的不同,有不同的表现形式

2. JSON值类型

JSON可以理解为JavaScript对象的序列化形式,JSON的值也可以理解为JavaScript对象的值。但并不是JavaScript对象的所有值都可以JSON值中表现,JSON中的值类型有:

数字Number类型(整数或浮点数)

字符串类型(String),需要包在双引号""

null

布尔类型(true或false)。

数组(Array),需要包在方括号[]中

对象(子JSON),需要包在大括号{}中

以上5种数据类型都可以JSON中使用。JSON数据值也有所限制,除上面的数据类型外,如:JavaScript中的函数(Function)、二进制类型等都不能在JSON中使用。

3. JavaScript中的JSON对象

3.1eval()函数与JSON对象

ECMAScipt 5之前,可以使用eval()函数将JSON字符串转换为JavaScript的Object。

ECMAScipt 5中增加了JSON,相比eval()函数,JSON对象处理JSON数据更为方便和准确。

如,分别使用eval()和JSON处理Unicode编码数据:

var code = '"\u2028\u2029"';

JSON.parse(code); // 正常执行

eval(code); // 执行失败

3.2JSON对象中的方法

JSON对象使用非常简单,该对只提供了两个对象方法,分别用于将对象序化为JSON字符串和将JSON字符串反序列化为JavaScriptObject。

JSON.parse(),解析JSON字符串,并返回解析值(JavaScript对象)。

JSON.stringify(),序列化JavaScript对象,并返回序列化后的JSON字符串。返回值只包含合法的JSON值,不合法的值将被丢弃。

如,使用JSON.stringify()序列化一个JavaScript对象:

var site = {

name:'IT笔录',

domain:'www.itbilu.com',

get: function () {

return this.name;

}

}

JSON.stringify(site); // {"name":"IT笔录","domain":"www.itbilu.com"}

如上所示,function是不合法的JSON值,JSON.stringify()序列化时将其丢弃。

使用JSON.parse()解析JSON字符串:

var jsonString = '{"name":"IT笔录","domain":"www.itbilu.com"}';

JSON.parse(jsonString); // { name: 'IT笔录', domain: 'www.itbilu.com' }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容