详解js中Json的语法与格式
JSON文本格式在语法上与创建JavaScript对象的代码相同。
由于这种相似性,无需解析器,JavaScript程序能够使用内建的eval()函数,用JSON数据来生成原生的JavaScript对象。
JSON语法规则:
数据在名称/值对仲
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON名称/值对介绍
"name":"张飞", "age":23
Json的值可以是:
数字(整数或浮点数)
字符串(要包括在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
Json转javascript对象的方法为:
eval("("+str+")");
代码示例:
<html>
<head>
<title>Json测试</title>
<scriptsrc="/Scripts/jquery-1.7.2.min.js"type="text/javascript"></script>
<scripttype="text/javascript">
//基本上,Json返回的要么是对象,要么是数组,如果单纯返回一个字符串,那么就没有必要用Json了,因此
//Json基本就下面这些可,不过要注意双引号
varstr0="{employees:'测试'}";
varobj0=eval("("+str0+")");
alert(obj0.employees);//输出测试
varstr="{name:'张三',Age:21}";
varobj=eval("("+str+")");
document.write(obj.name+obj.Age);//输出张三21
alert(obj.name);
//别看下面那段Json长,其实是一个对象,属性employees的值是一个对象数组。和上面的相比,只是name:张三中的"张三"字符串变成了对象数组而已
varstr2='{"employees":['+'{"firstName":"Bill","lastName":"Gates"},'+'{"firstName":"George","lastName":"Bush"},'+'{"firstName":"Thomas","lastName":"Carter"}]}';
varobj2=eval("("+str2+")");
alert(obj2.employees[0].firstName);//弹出Bill
varstr3="[1,2,3,4,5,6]";//json数组
varobj3=eval("("+str3+")");//输出2
alert(obj3[1]);
</script>
</head>
<body>
<divid="div1">
</div>
</body>
</html>
Json与JavaScript对象转换
JSON转javascript对象
//Json转对象1
functionJsonToObject(str){
returneval("("+str+")");
}
//Json转对象2
functionstrToJson(str){
varjson=(newFunction("return"+str))();
returnjson;
}
//Json转对象3jQuery工具函数
$.parseJSON()
javascript对象转JSON
//javascript对象转Json
functionObjectToJson(o){
vararr=[];
varfmt=function(s){
if(typeofs=='object'&&s!=null)returnjson2str(s);
return/^(string|number)$/.test(typeofs)?"'"+s+"'":s;
}
for(variino)arr.push("'"+i+"':"+fmt(o[i]));
return'{'+arr.join(',')+'}';
}
以上就是本文的全部内容,希望对大家有所帮助,谢谢对毛票票的支持!