
摘要
XML——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了 Web
services 的同义词。然而,由于 Ajax 和 REST 技术的出现影响了应用程序架构,这迫使人们开始
寻求`XML 的替代品,如:JavaScript Object Notation(JSON)。
JSON 作为一种更轻、更友好的 Web services 客户端的格式(多采用浏览器的形式或访问
REST 风格 Web 服务的 Ajax 应用程序的形式)引起了 Web 服务供应商的注意。
本文将阐述 JSON 在 Web services 设计中备受推崇的原因,以及它作为 XML 替代方案的主
要优势和局限性。文中还会深入探讨:随着相应的 Web 服务客户端选择使用 JSON,如何才能便
捷地在 Java Web services 中生成 JSON 输出。
XML 的十字路口: 浏览器和 Ajax
XML 设计原理已经发布了将近十年。时至今日,这种标记语言已经在广阔的软件应用领域中
占据了主导地位。从 Java、.NET 等主流平台中的配置和部署描述符到应用集成场景中更复杂的应
用,XML 与生俱来的语言无关性使之在软件架构师心目中占据着独特的地位。但即便最著名的
XML 权威也不得不承认:在某些环境中,XML 的使用已经超出了它自身能力的极限。
围绕 Ajax 原理构建的那些 Web 应用程序最能说明 XML 的生存能力,从这一点来看,一种新
的有效负载格式的发展壮大也得益于 XML。这种新的有效负载格式就是 JavaScript Object
Notation (JSON)。在探索这种新的标记语言的复杂性之前,首先来分析一下在这种独特的设计形
式中,XML 具有哪些局限性。
Ajax 建立了一个用于从远程 Web services 发送和接收数据的独立信道,从而允许 Web 程序
执行信道外(out-of-band)客户端/服务器调用。通俗地说,Ajax 程序中的更新和导航序列在典型
的客户端/服务器环境之外完成,在后台(即信道外)接受到信息后,必须进行一次完整的屏幕刷
新。更多背景信息,请参阅 David Teare 的 Ajax 简介(Dev2Dev)。
这些应用程序更新通常是通过 REST 风格(RESTful)Web services 获得的,一旦被用户的
浏览器接收到,就需要整合到 HTML 页面的总体布局之中,这正是 XML 发挥强大力量的场合。尽
管近年来,脚本语言支持和插件支持已使大多数主流浏览器的功能得到了强化,但许多编程任务
依然难于开展,其中之一就是操纵或处理文本,这通常是使用 DOM 实现的。
采用 DOM 的复杂性源于其基于函数的根,这使得对数据树的简单修改或访问都需要进行无数
次方法调用。此外,众所周知,DOM 在各种浏览器中的实现细节不尽相同,这一过程将带来极为
复杂的编程模式,其跨浏览器兼容性出现问题的可能性极大。接下来的问题显而易见,那就是:
如何使一种标记语言轻松集成到 HTML 页面中以满足 Ajax 的要求?
问题的答案就是:利用所有主流浏览器中的一种通用组件——JavaScript 引擎。XML 需要使
用 DOM 之类的机制来访问数据并将数据整合到布局之中,采用这种方法,我们不再使用像 XML
这样的格式来交付 Ajax 更新,而是采用一种更为简单直观的方式,采用 JavaScript 引擎自然匹配
的格式——也就是 JSON。
既然已经明确了 JSON 与 XML 和 Ajax 之间的关系,下面将进一步探讨 JSON 背后的技术细
节。
- 1
- 2
- 3
- 4
- 5
- 6
前往页