您好,欢迎访问一九零五行业门户网

详解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> <script src="/scripts/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> //基本上,json返回的要么是对象,要么是数组,如果单纯返回一个字符串,那么就没有必要用json了,因此 //json基本就下面这些可,不过要注意双引号 var str0 = "{employees:'测试'}"; var obj0 = eval("(" + str0 + ")"); alert(obj0.employees); //输出测试 var str = "{name:'张三',age:21}"; var obj = eval("(" + str + ")"); document.write(obj.name + obj.age); //输出 张三21 alert(obj.name); //别看下面那段json长,其实是一个对象,属性employees的值是一个对象数组。和上面的相比,只是name:张三 中的"张三"字符串 变成了对象数组而已 var str2 = '{ "employees" : [' + '{ "firstname":"bill" , "lastname":"gates" },' + '{ "firstname":"george" , "lastname":"bush" },' + '{ "firstname":"thomas" , "lastname":"carter" } ]}'; var obj2 = eval("(" + str2 + ")"); alert(obj2.employees[0].firstname); //弹出 bill var str3 = "[1,2,3,4,5,6]"; //json 数组 var obj3 = eval("(" + str3 + ")"); //输出 2 alert(obj3[1]); </script> </head> <body> <div id="div1"> </div> </body> </html>
json与javascript对象转换
json转javascript对象
//json转对象1 function jsontoobject(str) { return eval("(" + str + ")"); } //json转对象2 function strtojson(str){ var json = (new function("return " + str))(); return json; } //json转对象3 jquery工具函数 $.parsejson()
javascript对象转json
//javascript对象转json function objecttojson(o) { var arr = []; var fmt = function(s) { if (typeof s == 'object' && s != null) return json2str(s); return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; } for (var i in o) arr.push("'" + i + "':" + fmt(o[i])); return '{' + arr.join(',') + '}'; }
其它类似信息

推荐信息