ajax 编程技术 第十一章 json

Click here to load reader

Upload: noma

Post on 09-Jan-2016

158 views

Category:

Documents


7 download

DESCRIPTION

Ajax 编程技术 第十一章 JSON. 11.1 概述. 向服务器发出 Ajax 请求时,可以以两种不同的方式从服务器响应中检索数据,一种是 responseXML ,一种是 responseText 。前者以 XML 格式检索数据,解析数据比较困难,后者以纯文本格式解析数据。 Douglas Crockford 创建了另一种数据传输格式,我们称之为 JavaScript 对象表示法 (JavaScript Object Notation ) 。它是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于 JavaScript 的一个子集。 - PowerPoint PPT Presentation

TRANSCRIPT

PowerPoint PresentationJSONCJSON
An ordered list of values(array)

JSON
“‘/’”“{”“}”“”“”“‘/’”“”
value“[”“]”“”
valueString(number)truefalsenull(object)(array)
stringUnicode(character)(characeter string)
Ajax
11.2 JSON
XML
<user>
XMLJSON JSON StringNumberBoolean Object
StringNumber Boolean JSON JSON String “ abc ”"abc"
Ajax
11.2 JSON
“\/ \b\f\n\r\t Unicode
String
Ajax
11.2 JSON
12345
-3.9e10
Ajax
11.2 JSON
Object JSON {} Key-Value Object Java Map<String, Object> Java Class Key String
Address Key-Value
city:Beijing street:Chaoyang Roadpostcode:100025
JSON
JSON JSON JavaScript JSON
Web JavaScript JSON JavaScript JSON
function handleJson() {
JSON
JavaScript XML DOM JSON Ajax JSON
{"name":"Michael",
Ajax JSON Prototype JavaScript http://prototypejs.org evalJSON() JSON JavaScript
new Ajax.Request ("http://url", {
GET / JSON
var people =
],
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
/
var url = "organizePeople.php?people=" + people.toJSONString();
escape Web %20 “”
GET URL JSON

Ajax
POST JSON
var url = "organizePeople.php?timeStamp=" + new Date().getTime();
request.open("POST", url, true);
application/x-www-form-urlencoded
value
UTF-8 /
echo json_encode($arr);
    {  $char = $json[$c];
               $indent_level++;
                }
mixed json_decode ( string $json [, bool $assoc ] )
$assocTRUE
$assoc TRUE array object
Ajax
11.4 PHPJSON
      $json = substr($json, strpos($json,'{')+1, strlen($json));
      $json = substr($json, 0, strrpos($json,'}'));
      $json = preg_replace('/(^|,)([\\s\\t]*)([^:]*) (([\\s\\t]*)):(([\\s\\t]*))/s', '$1"$3"$4:', trim($json));
      return json_decode('{'.$json.'}', true);