Json 是一种的轻量级文本数据交换格式. 它独立于编程语言, 可以用于在不用的编程语言之间进行数据的交互.
下面简单例举二个使用 JSON 进行数据通信的例子.
第一个例子:
//Javascript 以 ajax 发送数据 JSON 数据, PHP 接收 JSON
// 前端
var arr = {
"name": "小明",
"age": 16
};
var json = JSON.stringify(arr); // 使用 JSON 将对象转换成 JSON 格式数据
var xhr = new XMLHttpRequest;
xhr.open('post', './bb.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send("user=" + json); // Content-Type 设置成 application/x-www-form-urlencoded 的情况下, 请求主体可以用 key1=value1&key2=value2 的形式发送数据
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) // 响应完成并且响应码为 200 或 304
alert(xhr.responseText);
}
------ 华丽的分割线 ----------------------------------------------------
// 后端
<?php
$info = $_POST["user"]; // 这个时候的 info 是一个字符串
$result = json_decode($info); // 这个时候的 result 已经被还原成对象
echo $result -> name;
第二个例子:
//PHP 发送数据 JSON 数据 Javascript 以 ajax 接收 JSON
// 前端
var xhr = new XMLHttpRequest;
xhr.open('post', './bb.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) { // 响应完成并且响应码为 200 或 304
var rst = JSON.parse(xhr.responseText);
alert(rst.name);
}
};
------ 华丽的分割线 ----------------------------------------------------
// 后端
$info = array("lession" = >"English", "name" = >"Lily");
echo json_encode($info);
补充一个关于 JSON 的兼容. JSON 这个内置对象在 IE8 之前是不存在的, 如果在 IE8 之前需要使用 JSON 对象, 需要像下述一样引入一个第三方插件 json2.js. 这样 IE7 及以下版本就会加载 json2.js 插件, 而其他浏览器或者 8 及以上版本的 IE 则不会加载这个插件:
<!--[if lte IE 7]>
<script src="./json2.js"></script>
<![endif]-->
来源: http://www.bubuko.com/infodetail-2478272.html