Sam*_*ody 19
JSON是一种共享数据的方式(通常在浏览器和服务器之间).
JavaScript允许以两种方式存储值集合:
//arrays:
[value, value, value]
//objects:
{key:value, key:value, key:value}
Run Code Online (Sandbox Code Playgroud)
在某些时候,一位名叫Doug的大师意识到将数据发送到已经像对象一样设置的JavaScript通常是最有效的.[而不是PHP发送逗号分隔的字符串,后期数据,XML,甚至HTML,所有这些都必须由JavaScript精心解析].
所以他把这个想法称为JSON,为它编写了一个规范,标准诞生了.
例如,假设您的login.php脚本应返回自注册以来的用户名,总帖子和天数:
//XML
"<xml..><details>\
<user>Jim</user><posts>239</posts><since>Jan09</since>\
</details>"
//POSTData
"user=Jim&posts=239&since=Jan09"
//JSON
"{user:'Jim', posts:239, since:'Jan09'}"
Run Code Online (Sandbox Code Playgroud)
最后一个可以通过JS(使用eval)轻松解析,并且可以直观地使用细节:
var user = details.user;
Run Code Online (Sandbox Code Playgroud)
编辑:
正确地指出,要成为有效的JSON,所有字符串必须是双引号.这样做是为了防止JS在保留关键字上呱呱叫(在JS中,可能不会使用某些单词,例如class,除非它们被引用.所以{class:'mike'}不能使用).
还应该指出PHP 5.2+具有可用于创建或解析JSON的函数:
<?php
$arr = array ('a'=>'ay','b'=>'bee','c'=>'cee');
echo json_encode($arr); //outputs {"a":"ay","b":"bee","c":"cee"}
?>
Run Code Online (Sandbox Code Playgroud)
只有在JSON有效的情况下,该函数才会起作用,因此有时重要的是要使这些双引号正确.json_decode
Jon*_*eet 12
它基本上是一种在文本中描述对象的方式 - 基于文本的序列化格式.然而,它的美妙之处在于它也只是普通的JavaScript.JavaScript的语法允许以非常简洁的格式初始化对象,并且该格式也很容易在其他语言中生成/解析.
因此,您可以在JavaScript中进行"内置"反序列化(即,您可以将文本解释为代码1),而无需额外的库,而其他平台可以创建它,通常使用库.(通常,Web服务器将为浏览器生成JSON以进行解释.)
1这假设您完全信任您的数据源 - 当然,从安全角度来看,执行任意文本代码非常危险.
| 归档时间: |
|
| 查看次数: |
18313 次 |
| 最近记录: |