JSON
JSON-RPC 采用 JSON 格式来序列化数据。JSON 是一种轻量级的数据交换格式。它以 JavaScript 语法来描述数据格式。因此,它在 JavaScript 中进行解析(反序列化)是很容易的,只需要直接通过 eval 函数即可返回结果。但是它的缺点也是很明显的。
- 不能正确表示正负无穷大(POSITIVE_INFINITY、NEGATIVE_INFINITY)。
- 字符串长度在逐字符分析完之前无法得到,非 JavaScript 语言在反序列化时需要逐字符判断,非常低效。
- 数组和对象中的元素个数在解析完之前无法得到。
- 只能表示 0 基连续数组,对于 0 基非连续数组、非 0 基数组、关联数组,均不能正确表示。
- 无法获知对象所属类。
- 不能表示直接递归和间接递归结构的数组和对象,一旦处理此类数据,程序将无法执行甚至引起浏览器崩溃。
PHP
PHPRPC 采用 PHP 格式来序列化数据。PHP 本身提供的序列化方式实际上也是一种通用的轻量级的数据交换格式,其它语言包括 JavaScript 都可以完全实现这种格式的序列化和反序列化。相对于 JSON 格式的来说,它具有以下优点。
- 不但可以正确的表示正负无穷大,而且能够区分整数和浮点数。
- 字符串长度在进行字符串解析前即可得到,之后可以直接根据长度来分配空间并获取字符串内容,使得任何语言在反序列化时都可以非常高效。
- 数组和对象元素个数在解析前即可得到。
- 不但可以表示 0 基连续数组,而且还可以正确的表示 0 基非连续数组、非 0 基数组和关联数组。
- 可以获知对象所属类。
- 可以表示直接递归和间接递归结构的数组和对象,且处理速度非常快。
因此,在序列化方式上,PHPRPC 相比 JSON-RPC 具有明显的优势。在通讯时,PHPRPC 比 JSON-RPC 可以交互的数据更丰富。
你说了优势,我来补充一下非优势:
1.复杂
2.不容易使用
—–
第一点复杂可以忽略不计,使用者不在乎是否复杂.
重点说说第2点:使用者调用phprpc太麻烦了吧
也许给个手册什么的或者给使用者最简单的使用接口—-wordpress的plugin这样的接口作到了易用性和有用性的统一.
你的phprpc有用,但不易用.——–我乱说的,望海涵
评论 作者 axgle — 2006-05-31 @ 18:19:00
phprpc 的使用比 json-rpc 要简单的多。
首先服务器端的程序不需要以任何特殊方式编写,甚至 PHP 内置函数都可以直接提供给客户端使用。比 JSON-RPC 的服务器端创建简单的多。
而客户端调用也不需要自己定义数据格式,直接调用服务器上的方法就可以了。说实话,比 JSON-RPC 调用简单的多。
http://www.coolcode.cn/?p=148 这里有 PHPRPC 用户手册,你读一读就知道有多简单了。
评论 作者 andot — 2006-05-31 @ 18:57:25
建议一楼的同学看看phprpc的用户手册,再来评价phprpc的是非,呵呵。尽管还不是很成熟,但在易用性方面已经做得非常好了。
Btw:这篇评论是用pocket ie发的,顺便测试一下。:)
评论 作者 legend — 2006-05-31 @ 21:12:51