【03】json使用
JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。为了更简单地为您讲解,我们使用字符串作为输入进行演示(而不是文件)。
创建包含 JSON 语法的 JavaScript 字符串:
var txt ='{ "employees" : ['+
'{ "firstName":"Bill" , "lastName":"Gates" },'+
'{ "firstName":"George" , "lastName":"Bush" },'+
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
(魔芋:也就是说eval() 类似浏览器的编译器,可以编译解析JavaScript)
var obj = eval ("("+ txt +")");
console.log(obj);
或者,使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:
var obj = JSON.parse(text);
在网页中使用 JavaScript 对象:
<p>
FirstName:<span id="fname"></span><br />
LastName:<span id="lname"></span><br />
</p>
<script type="text/javascript">
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>
<?php function createHtmlTag($tag =""){ return"<h1>$tag</h1><br/>"; } createHtmlTag("JSON和Serialize对比"); $member = array("username","age"); var_dump($member); ?>
<?php header("Content-type:text/html;charset=utf-8"); function createHtmlTag($tag =""){ echo "<h1>$tag</h1><br/>"; } createHtmlTag("JSON和Serialize对比"); $member = array("username","age"); var_dump($member); $jsonObj = json_encode($member); $serializeObj = serialize($member); createHtmlTag($jsonObj); createHtmlTag($serializeObj); ?>
Web 浏览器支持 | Web 软件支持 |
---|---|
|
|
对于较老的浏览器,可使用 JavaScript 库: https://github.com/douglascrockford/JSON-js
JSON 格式最初是由 Douglas Crockford 制定的。