- 浏览: 302529 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (271)
- jBPM (0)
- WebService (10)
- Flex (0)
- RubyOnRails (1)
- Java (56)
- J2EE (2)
- SQL (5)
- Tapestry (2)
- Dom4j (1)
- Japanese (9)
- English (4)
- JavaScript (3)
- Ajax (12)
- MyDiary (3)
- Log4j (2)
- XML (3)
- UML (1)
- Struts (3)
- Others (8)
- Funny (7)
- ProjectManagement (3)
- Tomcat (1)
- Servlet&Jsp (6)
- Html (4)
- iBATIS (1)
- EasyMock (1)
- Astronomy (1)
- Biology (1)
- Food and Health (0)
最新评论
-
yet8telecom:
good
js数组 sort方法的分析 转自NorthSnow HOME -
imain:
最后的结果是:1,5,3,4,6,2
js数组 sort方法的分析 转自NorthSnow HOME -
lixiaoqing:
最后一个输出结果应该是3,5,1,4,2,6 吧?
js数组 sort方法的分析 转自NorthSnow HOME -
benxiaohai1212:
请问如果输入参数是数组array类型,怎么处理?谢谢!
实例讲解:JAVA SOAP技术 -
netdisk:
这个建议可以用在电子文档管理上
软件文档管理指南
掌握 Ajax,第 11 部分: 服务器端的 JSON在服务器端脚本和程序中用 JSON 进行响应和回复 |
级别: 高级 Brett D. McLaughlin, Sr. (brett@newInstance.com ), 作家兼编辑, O'Reilly Media, Inc. 2007 年 8 月 28 日 在 本系列最近发表的一篇文章中 ,您已经了解了如何将 JavaScript 对象转变成 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 方法调用:
现在就可以将结果文本发送给服务器了。
将 JSON 发给服务器并不难,但却至关重要,而且还有一些重要的选择要做。但是,一旦决定使用 JSON,所要做的这些选择就会十分简单而且数量有限,所以您需要考虑和关注的事情不多。重要的是能够将 JSON 字符串发送给服务器,而且最好能做到尽快和尽可能简单。 将 JSON 数据发给服务器的最简单方法是将其转换成文本,然后以名称/值对的值的方式进行发送。请务必注意,JSON 格式的数据是相当长的一个对象,看起来可能会如清单 1 所示: 清单 1. JSON 格式的简单 JavaScript 对象
如果要以名称/值对将其发送到服务器端,应该如下所示:
这看起来不错,但却存在一个问题:在 JSON 数据中会有空格和各种字符,Web 浏览器往往要尝试对其继续编译。要确保这些字符不会在服务器上(或者在将数据发送给服务器的过程中)引起混乱,需要在 JavaScript
该函数可以处理空格、斜线和其他任何可能影响浏览器的内容,并将它们转换成 Web 可用字符(比如,空格会被转换成 这种做法的缺点有两个:
简言之,以上是 GET 请求的两个限制,而不是简单的两个与 JSON 数据相关的事情。在想要发送用户名和姓之外的更多内容,比如表单中的选择时,二者可能会需要多加注意。若要处理任何机密或极长的内容,可以使用 POST 请求。 当决定使用 POST 请求将 JSON 数据发送给服务器时,并不需要对代码进行大量更改,如下所示:
这些代码中的大部分,您都在 “ 掌握 Ajax,第 3 部分
:Ajax 中的高级请求和响应
” 中见过,应该比较熟悉,第 3 部分重点介绍了如何发送 POST 请求。请求使用 POST 而非 GET 打开,而且 Content-Type 头被设置为让服务器预知它能得到何种数据。在这种情况下,即为 另一个简单提示是 URL 的末尾追加了时间。这就确保了请求不会在它第一次被发送后即缓存,而是会在此方法每次被调用后重新创建和重发;此 URL 会由于时间戳的不同而稍微有些不同。这种技巧常被用于确保到脚本的 POST 每次都会实际生成新请求且 Web 服务器不会尝试缓存来自服务器的响应。 不管使用 GET 还是 POST,关键之处在于 JSON 就只是文本。由于不需要特殊编码而且每个服务器端脚本都能处理文本数据,所以可以轻松利用 JSON 并将其应用到服务器。假如 JSON 是二进制格式的或是一些怪异的文本编码,情况就不这么简单了;幸好 JSON 只是常规的文本数据(正如脚本能从表单提交中所接收到的数据,在 POST 段和 Content-Type 头中亦可以看出),所以在将数据发送到服务器时无需太费心。
一旦您编写完客户端 JavaScript 代码、允许用户与 Web 表单和 Web 页的交互、收集发送给服务器端程序以做处理所需的信息,此时,服务器就成为了应用程序(如果调用了异步使用的服务器端程序,则可能是我们认为的所谓的 “Ajax 应用程序”)中的主角。在此时,您在客户端所做的选择(比如使用 JavaScript 对象,然后将其转换成 JSON 字符串)必须要与服务器端的选择相匹配,比如使用哪个 API 解码 JSON 数据。 不管在服务器端使用何种语言,在服务器端处理 JSON 基本上就需要两个步骤。
以上差不多就是目前所应了解的大致内容了。接下来,我们对每个步骤进行较为详细的介绍。 寻找 JSON 解析器或工具箱最好的资源是 JSON 站点(有关链接,请参阅 参考资料 )。在这里,除了可以了解此格式本身的方方面面之外,还可以通过各种链接找到 JSON 的各种工具和解析器,从 ASP 到 Erlang,到 Pike,再到 Ruby,应有尽有。您只需针对自己编写脚本所用的语言下载相应的工具箱即可。为了让服务器端脚本和程序能够使用此工具箱,可以根据情况对其进行选择、扩展或安装(如果在服务器端使用的是 C#、PHP 或 Lisp,则可变性更大)。 例如,如果使用的是 PHP,可以简单将其升级至 PHP 5.2 并用它完成操作;在 PHP 这个最新版本默认包含了 JSON 扩展。实际上,那也是在使用 PHP 时处理 JSON 的最好方法。如果使用的是 Java servlet,json.org 上的 一旦获得了程序可用的资源,剩下的事就是找到合适的方法进行调用。比如,假设为 PHP 使用的是 JSON-PHP 模板:
通过该模板,可将获得的所有数据(数组格式的、多行的、单值的或 JSON 数据结构中的任何内容)转换成原生 PHP 格式,放在 如果在 servlet 中使用的是
可以参考
至此,您应该从技术角度对如何在服务器端处理 JSON 有了基本的把握。本篇文章和本系列的 第 10 部分 不仅提供了技术层面的帮助,而且还向您展示了 JSON 是一种多么灵活、强大的数据格式。即使您不会在每个应用程序中都使用 JSON,但优秀的 Ajax 和 JavaScript 程序员的工具箱中总少不了 JSON 以备不时之需。 我当然很希望能够分享您的 JSON 使用经验以及您对何种语言更善于在服务器端处理 JSON 数据的高见。您可以访问 Java 和 XML 新闻组(有关链接,请参阅 参考资料 部分)跟我联系。享受 JSON 和文本数据格式的乐趣吧。 学习
讨论
|
发表评论
-
初学Ajax
2006-12-14 14:53 1158一、开门见山 这些时间,瞎子也看得见,AJAX正大 ... -
掌握 Ajax,第 1 部分
2008-03-05 15:32 823本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 2 部分
2008-03-05 15:36 764本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 3 部分
2008-03-05 15:40 841本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 4 部分
2008-03-06 16:19 714掌握 Ajax,第 4 部分: 利用 DOM 进行 ... -
掌握 Ajax,第 5 部分
2008-03-06 16:20 773掌握 Ajax,第 5 部分: 操纵 DOM 使用 ... -
掌握 Ajax,第 6 部分
2008-03-06 16:21 723掌握 Ajax,第 6 部分: 建立基于 DOM 的 ... -
掌握 Ajax,第 7 部分
2008-03-07 17:17 701掌握 Ajax,第 7 部分: 在请求和响应中使用 ... -
掌握 Ajax,第 8 部分
2008-03-07 17:18 686掌握 Ajax,第 8 部分: 在请求和响应中使用 ... -
掌握 Ajax,第 9 部分
2008-03-07 17:19 800掌握 Ajax,第 9 部分: 使用 Google ... -
掌握 Ajax,第 10 部分
2008-03-24 13:38 736developerWorks 中国 > ...
相关推荐
### 掌握Ajax系列之服务器端的JSON:深入解析与应用 #### 深入理解JSON在Ajax中的角色 在《掌握 Ajax第 11 部分--服务器端的 JSON.pdf》一文中,作者Brett D. McLaughlin详细阐述了JSON在Ajax应用程序中的重要性,...
掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web...掌握 Ajax第 11 部分--服务器端的 JSON
掌握 Ajax,第 1 部分 Ajax 入门简介
### Ajax简介及核心技术解析 ...总之,学习和掌握Ajax对于Web开发人员来说是非常重要的。随着未来网络技术的发展,Ajax将继续发挥其重要作用,并且有可能会引入更多的新技术来进一步增强Web应用的性能和用户体验。
### 掌握Ajax系列之第五部分:操纵DOM详解 #### 使用JavaScript即时更新Web页面 在“掌握Ajax”系列的第五部分中,我们深入探讨了如何使用JavaScript操纵文档对象模型(DOM),以实现实时更新Web页面,而无需进行...
掌握Ajax--第1部分 Ajax简介 掌握Ajax--第2部分 使用JavaScript和Ajax发出异步请求 掌握Ajax--第3部分 Ajax中的高级请求和响应 掌握Ajax--第4部分 利用DOM进行Web响应 掌握Ajax--第10部分 使用JSON 进行数据传输
### 掌握Ajax系列之四:利用DOM进行Web响应 #### 深入理解DOM:构建Web响应的核心 在探讨如何利用DOM(Document Object Model,文档对象模型)进行Web响应之前,我们首先需要理解DOM的基本概念及其在Web开发中的...
综上所述,要精通AJAX技术,不仅要熟练掌握`XMLHttpRequest`对象的使用,还要深刻理解HTTP就绪状态、HTTP状态代码以及不同类型的HTTP请求。通过这些基础知识的学习,开发者可以在遇到问题时更快地进行调试和解决问题...
标题和描述均指向了一个主题,即“掌握Ajax的第六部分:建立基于DOM的Web应用程序”。这一部分的内容聚焦于如何在不刷新整个页面的情况下,利用DOM(Document Object Model,文档对象模型)来改变网页的界面。这是一...
### 掌握 Ajax 第 9 部分:使用 Google Ajax Search API #### 知识点概述 在本文档中,作者Brett McLaughlin详细介绍了如何利用公共API(特别是Google Ajax Search API)来增强Web应用程序的功能。这篇文章适用于...
### Ajax与XML:深入理解XML在Ajax中的角色 在探讨Ajax与XML的深层次关系之前,让我们首先澄清一个普遍存在的误解。尽管“Ajax”这个术语中包含“XML”,但这并不意味着XML是实现Ajax功能的必要条件。实际上,...
### 掌握Ajax第二部分:使用JavaScript和Ajax发出异步请求 #### XMLHttpRequest对象与Web2.0 在探讨Ajax和JavaScript如何发出异步请求之前,我们先简要回顾一下Web2.0的概念及其与传统Web1.0的区别。Web1.0时代,...
通过这个系列的学习,你将全面掌握Ajax技术,包括其基本概念、请求与响应的处理、DOM操作、以及实际应用示例。这些知识点不仅有助于提升网页开发技能,还能让你理解Web开发中的异步处理和数据交换机制。
1. **轻松掌握Ajax.net系列教程一.doc**:可能涵盖了Ajax基础概念的介绍,包括XMLHttpRequest对象的使用,以及如何在.NET环境下创建第一个Ajax请求。 2. **轻松掌握Ajax.net系列教程三.doc**:可能讲解了如何利用...
这段代码展示了如何使用Ajax技术在用户提交表单时发送异步请求,并根据服务器响应更新页面的部分内容。 #### 六、结论 通过以上分析,我们可以看出Ajax技术通过异步数据交换,极大提升了Web应用的性能和用户体验。...
### 掌握AJAX:真正详解 #### 一、引言 随着互联网技术的飞速发展,用户体验成为了网站设计中的重要考量因素之一。AJAX(Asynchronous JavaScript and XML)作为一种革新性的技术,使得Web应用程序能够提供更加流畅...
本资料“掌握Ajax”将深入讲解Ajax的工作原理、应用场景及实现方法。 1. **Ajax工作原理** - 异步:Ajax的核心特性,它允许Web应用在不打断用户操作的情况下向服务器发送请求。 - XMLHttpRequest:JavaScript内置...
【标题】"掌握AJAX_wrox press"涵盖了AJAX(Asynchronous JavaScript and XML)技术的深入理解和实践,这是Web开发中的一个关键概念,它允许在不刷新整个页面的情况下与服务器进行交互,提升用户体验。wrox press是...
**Ajax(Asynchronous JavaScript and XML)**是一种在无需...学习和掌握Ajax,对于提升Web应用的性能和用户体验具有显著作用。通过阅读和实践经典的文章,你可以深入了解Ajax的工作原理,从而在实际项目中灵活运用。