JSON-RPC-Java 简单说就是一个web 应用中间件,它允许DHTML直接访问远程的java应用,并无刷新的返回结果。表面上类似于Xml-RPC,或者远程调用EJB。不过JSON-RPC -Java的实现要简单得多,而且最重要的一点,它在客户端是且仅是使用Javascript 。
做web程序的人一定不会陌生 XMLHttpRequest。所以你也许已经猜到 JSON-RPC-Java 框架最底层的实现技术。没错,JSON-RPC-Java 正是使用 XMLHttpRequest 与服务端交换数据并表现出页面无刷新的效果。XMLHttpRequest 我不多说,apple的网站上有一个比较大概的介绍,参见这里,Mozilla的文档就更详尽了,参见这里(很意外,我竟然没有在微软的MSDN上找到一个比较系统的文档)。
从我对现在的所谓新技术的理解,通常是有一个很磅礴的名号,然后便是各巨头一番你捧我喝,实际上却无非是新瓶装老酒。现有的技术套上标准或者规范的外衣,再加上商业吵作,业界就血雨腥风一把。各巨头为了自己的商业利益,订立的繁杂的标准常常让我等望而反胃。
明确了最底层的实现,再看JSON-RPC-Java 就有了一个本质的认识,这有助于我们一件件拨开它神秘的外衣。就好像对待女人,我们通常在已经了解或者相信她有着诱人的身体的时候,才会乐于或者有耐心对待脱衣的前戏。
外套 JSON
JSON (JavaScript Object Notation) 很显然是 JSON-RPC-Java 的基础,它是基于javascript的一种简单易读的轻量级数据交换格式。它的主页在这里。
如果不熟悉Javascript,那么理解JSON则有一些困难。在这里我要先引入“直接量(Literals)”这个javascript概念。很不幸,我很难找到一篇中文的文章介绍它,好不容易在Lycos的中文网站上发现一份,但是只能通过 google 的网页快照来访问了,参见 《JavaScript 的直接量》。
简单说,如果我们要 javascript 创建一个对象,通常情况下可能会这样写:
function Person(name, sex) {
this.name = name;
this.sex = sex;
}
var p = new Person('zhaozexin', 1);
alert(p.name);
从Javascript 1.2开始,创建一个对象有了一种相当快捷的语法,如下:
var p = {"name": 'zhaozexin', "sex" : 1};
这一句就是对象的“直接量”。这样的语法很象java中的Map里toString()方法的输出。name 就是 key, 'zhaozexin' 就是 value。和Map一样,value除了可以是字符串或者数字以外,还可以是数组,函数或者其他对象。 再说说数组,常见的数组声明如下:
var a = new Array();
a[0] = 'zhaozexin';
a[1] = 1;
或者 var a = new Array('zhaozexin', 1);
数组的直接量 如下: var a = ['zhaozexin', 1]; 是否觉得也很象 ArrayList 的toString() 方法输出呢。javascript 何以叫 Javascript,那不是没有道理的。
除了代码的简化以外,直接量还有什么好处呢。我们就要关注 eval (codeString) 这个javascript内置函数了,它接受一个字符串参数,当作javascript的代码去解析并执行。所以eval 函数允许 javascript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :eval("var mydate = new Date();")。那么如果我们把“直接量” 作为参数传递给 eval函数,那么就可以动态的创建各式各样的对象了。
更详细的直接量的介绍,可以阅读 《Javascript 权威指南》,我强烈推荐这本书给所有从事web编程的同行。
现在 JSON 应该容易理解了,它的语法实际就是 javascript 的“直接量”。所以 JSON 的介绍上这样写:
JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, TCL, and many others. These properties make JSON an ideal data-interchange language.
这诸多的语言实现 JSON 的工作就相当简单了,就仿佛做一个字符串处理程序一样。那么JSON-RPC-Java 我们就可以猜出了大概了:
分享到:
相关推荐
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
本压缩包“json-rpc-java-1.0.zip”包含了JSON-RPC在Java平台上的实现及相关使用示例。 首先,JSON-RPC的基本原理是,客户端通过HTTP请求将一个JSON格式的请求体发送到服务器,请求体包含了要调用的方法名和参数。...
### JSON-RPC-Java在构建下一代Web应用中的应用 #### 概述 在2005年的演讲中,Michael Clark探讨了如何利用JSON-RPC-Java来构建高度动态的Web应用程序。这一技术允许开发人员通过JavaScript透明地调用远程Java方法...
本项目"json-rpc-java-1.0"提供了JSON-RPC的Java实现,包含`jsonArray`和`jsonObject`等关键组件。 1. JSON基础知识: JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它的基本...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端-服务器通信。在Android开发中,有时我们需要与远程服务器进行数据交互,这时JSON-RPC客户端库就显得尤...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...
在这个场景中,我们关注的是JSON-RPC在Java平台上的实现,特别是由国人编写的JSON-RPC Java库。 标题提到的“国人写的json-rpc-java的例子及jar包”,表明这是一个由国内开发者创建的JSON-RPC客户端和服务端的Java...
### 利用JSON-RPC-Java构建下一代Web应用程序 #### 概述 本文将探讨如何通过结合使用JSON-RPC-Java技术来构建高度动态、功能丰富的Web应用程序。JSON-RPC-Java是一种允许从JavaScript端透明地调用远程Java方法的...
这个“json-rpc-java-1.0.1”压缩包很可能是Java实现的一个JSON-RPC客户端或服务器端库,版本号为1.0.1。在Java中,这样的库通常提供了方便的方法来处理JSON-RPC请求和响应,使得开发者能够跨网络调用远程服务,就像...
7. **框架支持**: 在Java中,有多个库可以帮助开发者实现JSON-RPC,例如JSON-RPC 2.0规范下的net.sf.jsonrpc4j和jsonrpc-server等。这些库提供了一套完整的解决方案,包括服务器端的处理、客户端的调用以及错误处理...
2. "JSON-RPC.jar":这是编译后的Java库文件,包含了JSON-RPC for Java的核心组件,可以直接在Java项目中引用以实现JSON-RPC通信。 3. "JsonRpcClient.js":这可能是JavaScript版本的客户端库,用于在浏览器端或Node...
json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...
这个"json-rpc-1.0.zip"压缩包包含了一个Java实现的JSON-RPC 1.0版本的库,主要用于在Java应用程序中处理JSON数据并实现远程调用功能。 在Java中,JSON-RPC库允许开发者通过HTTP或WebSocket等协议,将JSON格式的...
在这个项目中,我们可能使用的JSON-RPC框架有如JsonRPC4j、gson-rpc等。这些框架提供了方便的API来简化服务端接口定义和服务注册,以及客户端的调用过程。例如,服务端通常需要创建一个实现了特定接口的类,然后通过...
JSON-RPC for Java是一种基于JSON(JavaScript Object Notation)协议的远程过程调用(Remote Procedure Call)框架,它允许客户端通过网络调用服务器上的方法,实现了客户端与服务器端的轻量级通信。本文将详细解释...
JSON-RPC-Java和Spring MVC集成深度集成。 @实现了Spring的多语言 @实现了Javascript的多语言 @对Spring MVC的无侵入 @JSON-RPC获得Spring的所有优势 @实现了一个多语言选择的demo @可以作为脚手架
JSON-RPC-Java 是 JSON-RPC 在 Java 平台上的实现,本手册将详细介绍 JSON-RPC-Java 的架构、实现细节和组件接口。 架构 ---- JSON-RPC-Java 由两个主要组件组成:JSONRPCBridge 和 JSONRPCServlet。 ### ...
总的来说,json-lib和json-rpc是Java开发中处理JSON数据和实现远程调用的重要工具。它们提供了丰富的功能,使得JSON在Java应用程序中的应用变得简单而高效。通过理解这两个库的工作原理和使用方法,开发者可以更好地...