JSON基本使用
<!DOCTYPE html> <html> <head> <title>TestJson.html</title> </head> <body> <h3>获取JSON创建的对象</h3> <p> NAME:<span id="name"></span><br/> ADDRESS:<span id="address"></span><br/> AGE:<span id="age"></span><br/> PHONE:<span id="phone"></span><br/> </p> <h3>获取JSON创建的数组</h3> <p> <span id="jsonarray"></span> </p> <script type="text/javascript"> //声明JSON对象 var JSONobj={ "name":"China-Anhui", "address":"白天鹅国际商务中心", "age":"22", "phone":"15966667777" }; //声明JSON数组 var JSONarray={ "eat":[ {"morning":"baozi1","lunch":"fish1","night":"noddle1"}, {"morning":"baozi2","lunch":"fish2","night":"noddle2"} ], "交通工具":[ {"car":"宝马","walk":"步行","other":"电动车"} ] }; //向页面输出json对象信息 document.getElementById("name").innerHTML=JSONobj.name; document.getElementById("address").innerHTML=JSONobj.address; document.getElementById("age").innerHTML=JSONobj.age; document.getElementById("phone").innerHTML=JSONobj.phone; //向页面输出JSON数组信息 document.getElementById("jsonarray").innerHTML=JSONarray.eat[1].morning; //document.getElementById("jsonarray").innerHTML=JSONarray.交通工具[1].car; </script> </body> </html> |
JavaScript遍历JSON数组
<!DOCTYPE html> <html> <head> <title>JSONarray.html</title> </head> <body> <script type="text/javascript"> var data=[{name:"cat1",age:"12"},{name:"cat2",age:"13"},{name:"cat3",age:"14"}]; //alert(data.length); //for循环遍历方式 for(var i=0;i<data.length;i++){ console.log("key:"+data[i].name+"---value:"+data[i].age); }
//for...in方式遍历 for(var da in data){ console.log("【key:"+data[da].name+"】;【value:"+data[da].age+"】"); } </script> </body> </html> |
JSON的应用
JSON 文本转为 JavaScript 对象
JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。
JSON 语法是 JavaScript 语法的子集,JavaScript函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
<!DOCTYPE html> <html> <head> <title>JSONarray.html</title> </head> <h3>获取JSON字符串创建的对象</h3> <p> <span id="firstName"></span><br/> <span id="lastName"></span> </p> <body> <script type="text/javascript"> var txt = '{"employees":[' + '{"firstName":"Hello","lastName":"Anhui" },' + '{"firstName":"George","lastName":"Bush" },' + '{"firstName":"Thomas","lastName":"Carter" }]}'; var obj = eval("("+txt+")"); console.log(obj); document.getElementById("firstName").innerHTML=obj.employees[0].firstName; document.getElementById("lastName").innerHTML=obj.employees[0].lastName; </script> </body> </html> |
JSON解析器
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
<!DOCTYPE html> <html> <head> <title>JSONarray.html</title> </head> <h3>获取JSON字符串创建的对象</h3> <p> <span id="firstName"></span><br/> <span id="lastName"></span> </p> <body> <script type="text/javascript"> var txt = '{"employees":[' + '{"firstName":"Hello","lastName":"Anhui" },' + '{"firstName":"George","lastName":"Bush" },' + '{"firstName":"Thomas","lastName":"Carter" }]}'; //var obj = eval("("+txt+")"); var obj = JSON.parse(txt); console.log("JSON解析器:"+obj); document.getElementById("firstName").innerHTML="++"+obj.employees[0].firstName; document.getElementById("lastName").innerHTML="++"+obj.employees[0].lastName; </script> </body> </html> |