前言:html
这里是修真院前端小课堂,每篇分享文从前端
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】git
八个方面深度解析前端知识/技能,本篇分享的是:github
【 json是什么,如何处理转义?】json
你们好,我是IT修真院北京总院第21期的学员杨梦桐,后端
今天这篇文主要关于json是什么,以及如何处理转义。数组
数据传输是咱们在编写代码时常常遇到的一个场景。给数据一个统一的格式有利于咱们编写和解析数据。json,是数据格式的一种,在与后端的数据交换中有较为普遍的应用。浏览器
json是一种数据格式,全名JavaScript Object Notation (JavaScript 对象表示法),具备基于文本、轻量级、被普遍地用于数据交换的特色,也是一种传递对象的语法,对象能够是name/value对,数组和其余对象,具体展开,包含以下概念:服务器
json的常见问题以下函数
1.什么是JSON对象?
a.符合json格式的js对象被简称为json对象
b.JSON是一个提供了stringify和parse方法的内置对象
c.JSON.stringify()将js对象转化为符合json标准的字符串
d.JSON.parse()将符合json标准的字符串转化为js对象
2. json格式的对象与通常js对象语法上的区别
a.json格式的对象键名必须是加双引号,属性值只能是数值(10进制)、字符串(双引号)、布尔值和null,也能够是数组或者符合JSON要求的对象,不能是函数、NaN, Infinity(存放表示正无穷大的数值), -Infinity和undefined,最后一个属性后面不能有逗号,前导0不能用,小数点后必须有数字
b.js对象键名可容许不加、加单引号、加双引号,任意属性值都可,最后一个属性后面能够有逗号,数值无限制
3. 什么是json格式?
数据以键值对的形式存储,和对象的格式有点像
ar person={name:"blabla"};
//一个普通的js对象
var obj2 = {"width":100,"height":200,"name":"blabla"};
// 可把这个称作:JSON 格式的 JavaScript 对象
var str1 = '{"width":100,"height":200,"name":"blabla"}';
// 可把这个称作:JSON 格式的字符串
var arr = [
{"width":100,"height":200,"name":"blabla"},
{"width":100,"height":200,"name":"blabla"},
{"width":100,"height":200,"name":"blabla"},
];
// 这个可叫JSON格式的数组,是JSON的稍复杂一点的形式
var str2='['+
'{"width":100,"height":200,"name":"blabla"},'+
'{"width":100,"height":200,"name":"blabla"},'+
'{"width":100,"height":200,"name":"blabla"},'+
']';
// 这个可叫稍复杂一点的 JSON 格式的字符串
扩展思考:由json字串生成json对象时的转义问题:http://blog.csdn.net/robotech...
参考文献:http://www.jb51.net/article/2...
json和xml做为数据传输的格式分别有什么优缺点:http://blog.csdn.net/tangtian...
ppt连接:https://ptteng.github.io/PPT/...
视频连接:https://v.qq.com/x/page/s0527...
拓展问题:
json返回的是一串数据;而jsonp返回的是脚本代码(包含一个函数调用),具体可参考http://www.cnblogs.com/iovec/...
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具备结构性的标记语言,能够用来标记数据、定义数据类型,是一种容许用户对本身的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,很是适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。具体可参考https://baike.baidu.com/item/...
相较json,XML文件庞大,文件格式复杂,传输占带宽;服务器端和客户端都须要花费大量代码来解析XML,致使服务器端和客户端代码变得异常复杂且不易维护;客户端不一样浏览器之间解析XML的方式不一致,须要重复编写不少代码;服务器端和客户端解析XML花费较多的资源和时间。可参考http://www.cnblogs.com/SanMao...