JSON是一种轻量级的数据交换语言,用来传输由属性值或者序列性的值组成的数据对象。虽然JSON是JavaScript的一个子集(JSON 这门语言抄袭了 JS这门语言),但是JSON是独立于JS的另一种语言。
JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json
JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包
JSON 和JS 区别:
- JSON没有抄袭undefined 和function(数据类型);
-
JSON表示string必须双引号“;
JSON与JavaScript的区别.png
解析与序列化(就是它的作用)
JSON对象有两个方法:stringify()和parse()
stringinfy():把JavaScript对象序列化为JSON字符串
parse():把JSON字符串解析为原生JavaScript值
var book={
title:"Abc",
authors:["Chen"],
edition:3,
year:2011
}
var jsontext=JSON.stringify(book)
//{ "title":"Abc", "authors":["Chen"] "edition“:3,”year“:2011}
var book2=JSON.parse(jsontext)
虽然book与book1具有相同属性,但是他们是两个独立的,没有任何关系的对象。
利用JSON的这两个属性可以实现JavaScript对象的深拷贝(以上代码就为一个深拷贝)
ps:
浅拷贝:仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅复制出来的对象也会相应改变。
深拷贝:在计算机中开辟了一块新的内存地址用于存放复制的对象。
网友评论