JSON的了解
1. 什么是JSON
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML,比 XML 更小、更快,更易解析, 是轻量级的文本数据交换格式
JSON 独立于语言 .,具有自我描述性,更易理解
例:
{
"employees": [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
]
}
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。
JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON 语法规则
花括弧,方括弧,冒号和逗号
- 花括弧表示一个“容器”
- 方括号装载数组
- 名称和值用冒号隔开
- 数组元素通过逗号隔开
2. JSON和XML的区别
相同的地方:
- 它们都“自我描述”,这意味着值都是可列举的,是“人类可读”的.
- 都是有层级的。(例如你可以在值里再存放值).
3.都能被多种的编程语言解析和使用.- 都能使用AJAX方法来传递(例如httpWebRequest).
不同的地方:- XML里在元素的开始和结尾处有尖括号和标签名:JSON使用花括号,而且只在数据的开始和结束时使用.
- JSON更简练,毫无疑问更适合人类书写,也许也能让我们更快速的阅读.
- JSON可以在JavaScript里简单的传递到eval()方法里使用.
- JSON里有数组{每个元素没有自己的名称.}
- 在XML里你可以对一个元素使用任意想要的名称,在JSON里你不能使用Javascript里的保留字
3. JSON和XML的对比
XML方式:
- 取回一个XML文件.
- 循环它,从中提取值.
- 处理这些值,等.
JSON方式:
- 取回JSON字符串.
- eval’ JSON数据.
4. JSON格式
JSON 对象
{ "firstName":"John" , "lastName":"Doe" }
在花括号中书写:对象可以包含多个名称/值对,于下面 js 语句等价
firstName = "John"
lastName = "Doe"
JSON 数组
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
数组可包含多个对象
对象 “employees” 是包含三个对象的数组,每个对象代表一条关于某人(有姓和名)的记录
下面使用 js 语法实现,因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
5. 转义概述
在js中我们使用的js对象进行处理,但是在与后端数据交换的时候,我们发送规定的json格式的字符串,所以在给后端发送或接受数据的时候,需要转义
{name:"myname",password:123456}
"{"name":"myname","password":123456}"
其中json字符串转js对象,调用parse方法:
js对象 = JSON.parse(json字符串);
js对象转json字符串,调用stringify方法:
json字符串 = JSON.stringify(js对象);
总结
- 向后台传输数据要用: json字符串格式,如果是一个对象要先用JSON.stringify()转义,转义成为字符串才能将数据传给后端。
- 后端传过来的字符串数据要转义成为一个对象: 用JSON.parse()方法转义。
了解JSON点JSON官网看看Json对象和Json字符串的区别看这里加深JSON理解和使用看这里