【03】json使用

【03】json使用

 

管 JSON 文本转换为 JavaScript 对象

JSON
最常见的用法有,是自 web 服务器上读取 JSON 数据(作为文件要作
HttpRequest),将 JSON 数据易为 JavaScript
对象,然后以网页遭到采用该数额。为了更简单地为你讲解,我们下字符串作为输入进行现身说法(而非是文件)。

JSON 实例 – 来自字符串的目标(字符串转JavaScript对象)

创办包含
JSON 语法的 JavaScript 字符串:

  1. var txt ='{ "employees" : ['+
  2. '{ "firstName":"Bill" , "lastName":"Gates" },'+
  3. '{ "firstName":"George" , "lastName":"Bush" },'+
  4. '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

 

由于 JSON
语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON
文本转换为 JavaScript 对象。

eval()
函数使用的凡 JavaScript
编译器,可分析 JSON 文本,然后变 JavaScript
对象。必须把文件包围在括号中,这样才会幸免语法错误:

(魔芋:也就是说eval()
类似浏览器的编译器,可以编译解析JavaScript)

  1. var obj = eval ("("+ txt +")");
  2. console.log(obj);

图片 1

要,使用
JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:

  1. var obj = JSON.parse(text);

 

 

以网页遭到采用 JavaScript 对象:

例子

  1. <p>
  2. FirstName:<br />
  3. LastName:<br />
  4. </p>
    1. <script type="text/javascript">
  5. document.getElementById("fname").innerHTML = obj.employees[1].firstName
  6. document.getElementById("lname").innerHTML = obj.employees[1].lastName
  7. </script>

 

 

 

 

JSON数据格式和Serialize数据格式的异同以及利用

相同的:

1,都是将其余数据类型转换成一个足传的字符串

2,都是结构性数据

 

不同的:

1,Serialize序列化的数量格式保存数据原有项目

2,JSON数据格式要重复简明,相比Serialize序列化之后的数码格式

 

 

使用状况:

1,JSON适合数据量大,不求保存老数据类型的景况下行使

2,Serialize适合储存带有加密方法的数量称,防止数据让中途截取反序列化破解。

 

 

 

 

例子:

<?php

function createHtmlTag($tag =""){
return"<h1>$tag</h1><br/>";
}

createHtmlTag("JSON和Serialize对比");
$member = array("username","age");
var_dump($member);

?>

 

图片 2

 

例子:

<?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);

?>

 

 

图片 3

 

 

 

 

JSON 解析器

提示:eval() 函数而编译并推行另外
JavaScript 代码。这隐藏了一个潜在的平安题材。
下 JSON 解析器将 JSON 转换为 JavaScript 对象是重复安全的做法。JSON
解析器只能识别 JSON 文本,而休会见编译脚本。在浏览器被,这提供了原生的
JSON 支持,而且 JSON 解析器的速更快。较新的浏览器与新星的 ECMAScript
(JavaScript) 标准中全都包含了原生的指向 JSON 的支撑。

Web 浏览器支持 Web 软件支持
  • Firefox (Mozilla) 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4
  • jQuery
  • Yahoo UI
  • Prototype
  • Dojo
  • ECMAScript 1.5

 

对比较老的浏览器,可利用 JavaScript 库:
https://github.com/douglascrockford/JSON-js

JSON
格式最初是由 Douglas Crockford
制定的。