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 文本,而不会编译脚本。

posted on 2013-12-27 22:10  fuleying  阅读(957)  评论(0编辑  收藏  举报