发表于: 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


返回列表 返回列表
评论

    分享到