json 详解
以前只知道有json,并不知道能有什么用途,今天就仔细的了解了下……
浏览器从服务器端接收数据时,那些数据必须以浏览器能够理解的格式来发送,服务器端的编程语言只能以如下3种格式返回数据:xml、json、html
JSON:JavaScript 对象表示法(JavaScript Object Notation), 是存储和交换文本信息的语法。一种轻量级的数据交换格式,类似 XML,比 XML 更小、更快,更易解析。Json是javascript的原生格式,这意味着在javascript中处理json数据不需要任何特殊的api或工具包。
相比 XML 的不同之处:没有结束标签,更短,读写的速度更快,能够使用内建的 JavaScript eval() 方法进行解析,使用数组不使用保留字
为什么使用 JSON?
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
使用 XML、读取 XML 文档、使用 XML DOM 来循环遍历文档、读取值并存储在变量中
使用 JSON、读取 JSON 字符串、用 eval() 处理 JSON 字符串
Json规则很简单:
a.映射用冒号 “:” 表示,名称:值
b.并列的数据之间用逗号(,)分隔。名称1:值1,名称2:值2
c.映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
d.并列数据的集合(数组)用方括号(”[]”)表示。
[
{名称1:值1,名称2:值2},
{名称1:值1,名称2:值2}
]
e. 元素值可具有的类型:string,number,object,array,true,false,null
Json只是一种文本字符串,被存储在responseText属性中,为了读取存储在responseText属性中的json数据,需要根据js中的eval函数把字符串当作它的参数,然后这个字符串会被当做js代码来执行,因为json的字符串就是由js代码构成的,所以它本身是可执行的,eval通过计算 string 得到的值(如果有的话)
下面是例子:
客户端:
[html]
<body>
<script type="text/javascript">
<%--
// json表示形式如此强大,几乎可以满足任何常用服务器语言的需求
//js表示一个对象用json
var people={"name":"ljf","age":"20","email":"ljfbest@foxmail.com"};
//多个对象
var people1=[
{"name":"ljf","age":"20","email":"ljfbest@foxmail.com"},
{"name":"ljf1","age":"21","email":"ljfbest1@foxmail.com"}
]
//混搭
var peoples={"param1":
[
{"name":"ljf","age":"20","email":"ljfbest@foxmail.com"},
{"name":"ljf1","age":"21","email":"ljfbest1@foxmail.com"}
],
"param2":
[
{"no":"123","class":"2"},
{"name":"ljf1","age":"21","email":"ljfbest1@foxmail.com"}
]
}
var information={
"name":"ljfbest",
"age":"20",
"tel":"155555555",
address:[
{"family":"shangqiu","code":"123333"},
{"company":"nyist","code":"1222333"}
]
}//名称不带引号也可以,此例中的address
alert(information.address[0].family);
--%>
function ajaxFunction(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();
}catch(e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
}catch(e){}
}
}
return xmlHttp;
}
window.onload=function(){
document.getElementById("ok").onclick= function()//与服务器交互监听返回的数据状态
{
var xmlReq=ajaxFunction();
xmlReq.onreadystatechange=function(){
if(xmlReq.readyState==4){
if(xmlReq.status==200||xmlReq.status==304)
&n
补充:web前端 , JavaScript ,