1、JSON - JavaScript Object Notation(JS原生支持)
2、SON数据格式源于javascript
3、特点
? * 易于程序员阅读和编写
? * 易于计算机解析和生成
4、JSON目前是网络上使用最广泛的数据格式之一
1、Array - 数组
2、Object - 对象
3、值可以是:
? * String字符串
\* Number数值
\* Boolean - true|false
\* Object
\* Array
\* null
1、请求格式为JSON
\* 客户端向服务器端发送请求为JSON格式的数据:构建符合JSON格式的字符串
2、保证定义字符串时, 使用单引号(里面使用双引号)
\* 服务器端接收JSON格式的数据,接收客户端的数据
3、使用json_decode()函数进行解析
? json_decode($json,true)
4、响应格式为JSON
? (1)服务器端向客户端发送响应为JSON格式的数据
? 使用json_encode()函数将PHP变量(array)转换成符合JSON格式的字符串.
? (2)客户端接收JSON格式的数据:使用XMLHttpRequest对象的responseText属性接收。没有responseJSON属性
? * 使用eval()函数进行转换
* 练习 - 使用JSON格式完成二级联动
<!DOCTYPE html>
<html>
<head>
<title>Ajax中的JSON格式</title>
<meta charset="utf-8" />
</head>
<body>
<input type="button" value="Ajax" id="btn">
<script>
var btn = document.getElementById("btn");
btn.onclick = function(){
var xhr = getXhr();
xhr.open("post","10.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
/*
* 在客户端如何构建JSON格式
* * 构建符合JSON格式的字符串
*/
var user = '{"name":"zhangwuji","pwd":"123456"}';
xhr.send("user="+user);
xhr.onreadystatechange = function(){
if(xhr.readyState==4&&xhr.status==200){
var data = xhr.responseText;
/*
* 使用eval()函数进行转换
* * 使用"()"将其包裹,eval()函数强制将其转换为JSON格式(javascript代码)
* * 不使用"()"将其包裹,eval()函数将其识别为一个空的代码块
*/
var json = eval("("+data+")");
console.log(json);
}
}
}
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
return xhr;
}
</script>
</body>
</html>
(四)HTML(文本格式)、XML格式及JSON格式的优缺点
* HTML格式
\* 优点 - 简单
\* 缺点 - 解析复杂
* XML格式
\* 优点 - 易于构建复杂数据
? * 缺点 - 构建、解析复杂
* JSON格式
\* 优点 - 轻量级
\* 缺点 - 可能转换失败
原文:https://www.cnblogs.com/jianjie/p/12365242.html