首页 / 脚本样式 / Ajax / 掌握Ajax,第11部分: 服务器端的JSON
掌握Ajax,第11部分: 服务器端的JSON2011-09-27 IBM Brett D. McLaughlin在服务器端脚本和程序中用 JSON 进行响应和回复简介:在 本系列最近发表的一篇文章中,您已经了解了如何将 JavaScript 对象转变成 JSON 格式。 这种格式很容易用于发送(和接收)与对象甚至对象数组对应的数据。在 本系列 的最后一篇文章中,您 将会学习如何处理以 JSON 格式发送到服务器的数据以及如何使用相同格式对脚本进行回复。JSON 的真正价值正如在 本系列上一篇文章 中所描述的那样,JSON 是适用于 Ajax 应用程序的一种有效格式,原因是 它使 JavaScript 对象和字符串值之间得以快速转换。由于 Ajax 应用程序非常适合将纯文本发送给服务 器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取;而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思。XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON API 成熟;有时,您必须在创建和处理 JavaScript 对象时格外谨慎以确保所进行的处理能与所选 用的 XML 会话 API 协作。但对于 JSON,情况就大不相同:它能处理几乎所有可能的对象类型,并会返 回给您一个非常好的 JSON 数据表示。因此,JSON 的最大价值在于可以将 JavaScript 真的作为 JavaScript 而非数据格式语言进行处理。 您所学到的所有有关使用 JavaScript 对象的技巧都可以应用到代码中,而无需为如何将这些对象转变成 文本而多费心思。这之后,可以进行如下所示的简单 JSON 方法调用:String myObjectInJSON = myObject.toJSONString();
现在就可以将结果文本发送给服务器了。将 JSON 发给服务器将 JSON 发给服务器并不难,但却至关重要,而且还有一些重要的选择要做。但是,一旦决定使用 JSON,所要做的这些选择就会十分简单而且数量有限,所以您需要考虑和关注的事情不多。重要的是能够 将 JSON 字符串发送给服务器,而且最好能做到尽快和尽可能简单。通过 GET 以名称/值对发送 JSON将 JSON 数据发给服务器的最简单方法是将其转换成文本,然后以名称/值对的值的方式进行发送。请 务必注意,JSON 格式的数据是相当长的一个对象,看起来可能会如清单 1 所示:清单 1. JSON 格式的简单 JavaScript 对象var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin",
"email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter",
"email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold",
"email": "elharo@macfaq.com" } ], "authors": [ { "firstName": "Isaac",
"lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad",
"lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank",
"lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }