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 我们就可以猜出了大概了:
由java实现一个JSON的服务端与web程序中的 javascript(实现JSON的客户端)通过XMLHttpRequest 交换数据,而数据的格式便是javascript“直接量” 的格式,java服务端分析请求,执行然后依据同样的格式返回结果。很明显,这就是 Xml-RPC 的 javascript 版本。javascript 语法的灵活省却了解析xml的繁杂。javascript 让我如何能不爱你!
外套已经脱完。IT界永远都是春天,衣服不会穿很多的。
分享到:
相关推荐
标题"jsonrpc-frontend:前端应用程序发送 json-rpc 请求进行测试"表明我们要讨论的是一个专门针对前端应用的库或工具,它帮助开发者方便地发送JSON-RPC请求进行功能测试。这个工具可能包括对JSON-RPC规范的实现、...
1. **简单易用的API**:android-json-rpc提供了一个直观且易于理解的API,使得开发者能够快速地集成到项目中,进行JSON-RPC的调用。通过创建一个`JsonRpcClient`实例,然后调用其`call`方法,可以方便地发送请求并...
本压缩包“json-rpc-java-1.0.zip”包含了JSON-RPC在Java平台上的实现及相关使用示例。 首先,JSON-RPC的基本原理是,客户端通过HTTP请求将一个JSON格式的请求体发送到服务器,请求体包含了要调用的方法名和参数。...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
- **基本结构**:请求对象必须包含 "jsonrpc" 字段,其值为 "2.0",指示使用的是 JSON-RPC 2.0 协议。 - **方法调用**:"method" 字段用于指定要调用的方法名。方法名采用字符串形式,其中以 "rpc." 开头的方法名...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
在提供的压缩包“json-rpc-1.0(with source).rar”中,包含了JSON-RPC 1.0的实现以及相应的源代码。 **JSON-RPC 1.0协议详解** JSON-RPC 1.0定义了客户端和服务器之间通信的基本结构,主要包含以下几个部分: 1. *...
7. **框架支持**: 在Java中,有多个库可以帮助开发者实现JSON-RPC,例如JSON-RPC 2.0规范下的net.sf.jsonrpc4j和jsonrpc-server等。这些库提供了一套完整的解决方案,包括服务器端的处理、客户端的调用以及错误处理...
4. **`jsonrpc`**:版本号,对于JSON-RPC 2.0,值应为`"2.0"`。 ### JSON-RPC工作流程 1. **客户端发起请求**:客户端构造一个包含`method`、`params`和`id`的JSON对象,通过HTTP请求发送到服务器。 2. **服务器...
这个"json-rpc-1.0.zip"压缩包包含了一个Java实现的JSON-RPC 1.0版本的库,主要用于在Java应用程序中处理JSON数据并实现远程调用功能。 在Java中,JSON-RPC库允许开发者通过HTTP或WebSocket等协议,将JSON格式的...
1. "JSON-RPC for Java使用说明.doc":这是关于如何使用该框架的文档,通常会包含安装步骤、配置指南、API参考和示例代码等。 2. "JSON-RPC.jar":这是编译后的Java库文件,包含了JSON-RPC for Java的核心组件,可以...
本项目"json-rpc-java-1.0"提供了JSON-RPC的Java实现,包含`jsonArray`和`jsonObject`等关键组件。 1. JSON基础知识: JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它的基本...
### JSON-RPC-Java在构建下一代Web应用中的应用 #### 概述 在2005年的演讲中,Michael Clark探讨了如何利用JSON-RPC-Java来构建高度动态的Web应用程序。这一技术允许开发人员通过JavaScript透明地调用远程Java方法...
基于JSON-RPC 1.0的C语言实现,如"jsonrpc-c-master",提供了一种在C语言环境中构建服务端应用的方法,尤其适用于嵌入式系统或对性能有严格要求的环境。 **JSON-RPC 1.0协议基础** JSON-RPC 1.0是一个简单的请求/...
继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...
在这个项目中,我们可能使用的JSON-RPC框架有如JsonRPC4j、gson-rpc等。这些框架提供了方便的API来简化服务端接口定义和服务注册,以及客户端的调用过程。例如,服务端通常需要创建一个实现了特定接口的类,然后通过...
在Python中,json-rpc-python库提供了一种方便的方式来实现JSON-RPC服务器和客户端,允许程序通过网络进行通信,执行远程方法就像它们是在本地一样。 在Python中,json-rpc-python库主要包含以下几个核心概念: 1....
json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...
在本例中,json-lib-2.1-jdk15.jar和json-rpc-1.0.jar已经经过验证,可以一起使用,这意味着开发者可以安心地在项目中集成这两个库,不必担心版本不兼容的问题。 总的来说,json-lib和json-rpc是Java开发中处理JSON...
1. **JSON-RPC**:JSON Remote Procedure Call,使用JSON进行数据交换的远程过程调用协议。 2. **客户端(Client)**:发起远程调用的一方,通常位于用户浏览器或服务器上。 3. **服务器端(Server)**:提供被调用...