JSON简介
JSON的全称是JavaScript Object Notation,它是一种轻量级的数据交换格式。JSON的特点是易于理解、易于阅读、易于编写、易于解析、易于生成。JSON适用于数据传输和存储,常见于Web应用中与客户端和服务端之间的数据交互。
JSON用法汇总
JSON语法:
JSON由两种结构组成:
-
键值对:一组“键/值”对,使用英文冒号隔开,比如:“name”:“张三”,“age”:18。键(key)必须是字符串类型的。值可以是字符串、数字、布尔值、数组、对象。多个键值对之间使用英文逗号分隔。
-
值:可以是数组或者对象。数组是一个有序的元素集合,每个元素可以是任意类型的数据,使用英文逗号隔开。对象是一个无序的“键/值”对集合,使用英文大括号括起来。如果对象中包含多个键值对,则使用英文逗号隔开。
JSON格式的特点:
-
简洁:相比于XML格式的数据交换和存储,JSON格式更为简洁,使用的字符更少。
-
易于解析:JSON格式的数据易于解析,可以直接使用JavaScript的eval()函数或者JSON.parse()方法将数据转换为JavaScript对象。
-
适用于跨语言数据交换:JSON格式适用于不同编程语言之间的数据交换,因为所有的编程语言都可以解析该格式。
JSON的常用方法
1. 将JavaScript对象转换为JSON格式的字符串:JSON.stringify()
这个方法实际上就是将一个JavaScript对象转换为符合JSON格式要求的字符串。例如:
var person = {name:"张三",age:18,address:"广东省深圳市"};
var person_json = JSON.stringify(person);
console.log(person_json);
执行结果为:
{"name":"张三","age":18,"address":"广东省深圳市"}
2. 将JSON格式的字符串转换为JavaScript对象:JSON.parse()
这个方法实际上就是将一个符合JSON格式要求的字符串转换为JavaScript对象。例如:
var person_json = '{"name":"张三","age":18,"address":"广东省深圳市"}';
var person = JSON.parse(person_json);
console.log(person);
执行结果为:
{name:"张三",age:18,address:"广东省深圳市"}
示例1:在AJAX应用中使用JSON格式数据
在网页中使用AJAX技术进行数据交互时,通常使用JSON格式的数据进行传输。例如,下面的代码演示了如何使用AJAX技术从服务端获取数据,并将获取的数据使用JSON格式进行传输和解析:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.example.com/api/get_data', true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var response = JSON.parse(xhr.responseText);
//在这里使用获取到的数据进行操作
}else{
console.log("请求失败:" + xhr.status);
}
}
}
xhr.send();
示例2:在Node.js应用中使用JSON格式数据
Node.js是一种服务器端JavaScript运行环境,它支持使用JSON格式的数据进行数据交互。下面的代码演示了如何在Node.js应用中使用JSON格式的数据:
var http = require('http');
var app = http.createServer(function(req,res){
res.writeHead(200,{
'Content-Type':'application/json'
});
var person = {name:"张三",age:18,address:"广东省深圳市"};
var person_json = JSON.stringify(person);
res.end(person_json);
});
app.listen(8080,'127.0.0.1');
console.log('Server running at http://127.0.0.1:8080/');
在上面的代码中,我们创建了一个HTTP服务器,并将返回数据的Content-Type设置为application/json。最后,将一个JavaScript对象转换为JSON格式的字符串,并将其返回给客户端。