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 发给服务器
----通过 GET 以名称/值对发送 JSON
将 JSON 数据发给服务器的最简单方法是将其转换成文本,然后以名称/值对的值的方式进行发送。请务必注意,JSON 格式的数据是相当长的一个对象,看起来可能会如清单 1 所示:
清单 1. JSON 格式的简单 JavaScript 对象
- varpeople={"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",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "lastName":"Asimov","genre":"sciencefiction"},{"firstName":"Tad",248)"> "lastName":"Williams","genre":"fantasy"},{"firstName":"Frank",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "lastName":"Peretti","genre":"christianfiction"}],"musicians":[
- {"firstName":"Eric","lastName":"Clapton","instrument":"guitar"},108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> {"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"}]}
如果要以名称/值对将其发送到服务器端,应该如下所示: