目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在JSON出现之前,人们一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后 ,XML使用起来很繁琐。后来,出现了JSON。JSON是道格拉斯·克罗克福特(DouglasCrockford)在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。
JSON简介
JSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。数据传输是我们在敲代码时,经常遇到的一个场景,前后端交互。给数据一个统一的格式有利于我们编写和解析数据。json,是一种数据格式,在与后端的数据交互中有较为广泛的应用。
JSON语法
JSON值
var json = {"password":123456,"name":"myname","Booleans":true,"Array":[x,y,z],"object":{}}
JSON嵌套
myObj = {
"name":"jnshu",
"alexa":1000,
"sites": {
"site1":"www.jnshu.com",
"site2":"m.jnshu.com",
"site3":"c.jnshu.com"
}
}
console.log(myObj)
//输出结果:
Object {name: "jnshu", alexa: 1000, sites: Object}
JSON使用
JSON.parse()将字符串转化为对象
JSON.stringify()将对象转化为字符串
var str = '{ "name": "cxh", "sex": "man" }';// JSON字符串
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
//读取
Alert(obj.name);
Alert(obj.sex);
var a = { "name": "cxh", "sex": "man" };//JSON对象
var b =JSON.stringify(a); //将JSON对象转化为JSON字符
如何处理转义
在用JSON.parse解析JSON对象时会对其中的转义符进行两次解析
将字符串'{"a":"b","b":"\\\\"}'传递给JSON.parse(),首先解析器提取单引号括起来的字符串时认为第一个\转义第二个\ ,第三个\转义第四个\, 也就是说实际可输出字符串是{"a":"b","b":"\\"}(可通过console.log('{"a":"b","b":"\\\\"}')验证),之后正式转为js对象的时候还有一次转义, 也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\)。 所以console.log(JSON.parse('{"a":"b","b":"\\\\"}') );输出结果为Object {a: "b", b: "\"}, 也就是说实际显示的数据为一个\(实际可输出一个\说明在此之前还有一个\)。
总结:JSON.parse的参数包含转移字符的时候会遇到两次转义的问题,其实第一次是字符串本身的转义,第二次是真正转为js对象的转义。
JSON对象 -- JavaScript 标准参考教程(alpha)
JSON.stringify 语法实例讲解
JSON.parse() - JavaScript
感谢大家观看
By 火建强
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在JSON出现之前,人们一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后 ,XML使用起来很繁琐。后来,出现了JSON。JSON是道格拉斯·克罗克福特(DouglasCrockford)在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。
JSON简介
JSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。数据传输是我们在敲代码时,经常遇到的一个场景,前后端交互。给数据一个统一的格式有利于我们编写和解析数据。json,是一种数据格式,在与后端的数据交互中有较为广泛的应用。
JSON语法
JSON值
var json = {"password":123456,"name":"myname","Booleans":true,"Array":[x,y,z],"object":{}}
JSON嵌套
myObj = {
"name":"jnshu",
"alexa":1000,
"sites": {
"site1":"www.jnshu.com",
"site2":"m.jnshu.com",
"site3":"c.jnshu.com"
}
}
console.log(myObj)
//输出结果:
Object {name: "jnshu", alexa: 1000, sites: Object}
JSON使用
JSON.parse()将字符串转化为对象
JSON.stringify()将对象转化为字符串
var str = '{ "name": "cxh", "sex": "man" }';// JSON字符串
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
//读取
Alert(obj.name);
Alert(obj.sex);
var a = { "name": "cxh", "sex": "man" };//JSON对象
var b =JSON.stringify(a); //将JSON对象转化为JSON字符
如何处理转义
在用JSON.parse解析JSON对象时会对其中的转义符进行两次解析
将字符串'{"a":"b","b":"\\\\"}'传递给JSON.parse(),首先解析器提取单引号括起来的字符串时认为第一个\转义第二个\ ,第三个\转义第四个\, 也就是说实际可输出字符串是{"a":"b","b":"\\"}(可通过console.log('{"a":"b","b":"\\\\"}')验证),之后正式转为js对象的时候还有一次转义, 也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\)。 所以console.log(JSON.parse('{"a":"b","b":"\\\\"}') );输出结果为Object {a: "b", b: "\"}, 也就是说实际显示的数据为一个\(实际可输出一个\说明在此之前还有一个\)。
总结:JSON.parse的参数包含转移字符的时候会遇到两次转义的问题,其实第一次是字符串本身的转义,第二次是真正转为js对象的转义。
JSON对象 -- JavaScript 标准参考教程(alpha)
JSON.stringify 语法实例讲解
JSON.parse() - JavaScript
感谢大家观看
By 火建强