详解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(',')+'}'; }
以上就是本文的全部内容,希望对大家有所帮助,谢谢对毛票票的支持!