Json
1. JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数进行解析,用 JSON 数据来生成原生的 JavaScript 对象。 必须把文本包围在括号中,这样才能避免语法错误:
var obj = eval ("(" + txt + ")");
2. JSON 可通过 JavaScript 进行解析 JSON 数据可使用 AJAX 进行传输
3. 读取 JSON 字符串 用 eval() 处理JSON 字符串
4. JSON 文件的文件类型是 ".json" JSON 文本的 MIME 类型是 "application/json"
5. JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。
1 <html> 2 <body> 3 <h2>通过 JSON 字符串来创建对象</h3> 4 <p>First Name: <span id="fname"></span></p> 5 6 <script type="text/javascript"> 7 var employees = [ 8 { "firstName":"Bill" , "lastName":"Gates" }, 9 { "firstName":"George" , "lastName":"Bush" }, 10 { "firstName":"Thomas" , "lastName": "Carter" } 11 ]; 12 employees[1].firstName="Jobs"; 13 document.getElementById("fname").innerHTML=employees[1].firstName; 14 </script> 15 16 </body> 17 </html> 18 19 20 通过 JSON 字符串来创建对象 21 22 First Name: Jobs
<html> <body> <h2>通过 JSON 字符串来创建对象</h3> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/javascript"> var txt = '{"employees":[' + '{"firstName":"Bill","lastName":"Gates" },' + '{"firstName":"George","lastName":"Bush" },' + '{"firstName":"Thomas","lastName":"Carter" }]}'; var obj = eval ("(" + txt + ")"); document.getElementById("fname").innerHTML=obj.employees[1].firstName document.getElementById("lname").innerHTML=obj.employees[1].lastName </script> </body> </html> 通过 JSON 字符串来创建对象 First Name: George Last Name: Bush
6. 提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。