发表于: 2017-07-17 22:10:45
1 928
今天这篇文主要关于json是什么,以及如何处理转义。
数据传输是我们在编写代码时经常遇到的一个场景。给数据一个统一的格式有利于我们编写和解析数据。json,是数据格式的一种,在与后端的数据交换中有较为广泛的应用。
json是一种数据格式,全名JavaScript Object Notation (JavaScript 对象表示法),具有基于文本、轻量级、被广泛地用于数据交换的特点,也是一种传递对象的语法,对象可以是name/value对,数组和其他对象,具体展开,包含如下概念:
1. 基于文本:JSON是基于文本的数据格式,相对于基于二进制的数据,所以JSON在传递的时候是传递符合JSON这种格式的字符串,而不是一个对象。
2. 轻量级:在JSON之前,有一个数据格式叫xml,现在依旧广泛使用,但是JSON更加轻量,这在有大量数据请求和传递的情况下是有明显优势的。
3. 应用广泛:轻量已经是一个用于数据交换的优势了,但更重要的JSON是易于阅读、编写和机器解析的,即这个JSON对人和机器都是友好的,而且又轻,独立于语言(因为是基于文本的),所以JSON被广泛用于数据交换。
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_er/article/details/40260377
参考文献:http://www.jb51.net/article/29893.htm
json和xml作为数据传输的格式分别有什么优缺点:http://blog.csdn.net/tangtiantian520/article/details/50945582
评论