用 state pattern 简化 json 解释器的实现

之前用 state pattern 实现过 xml 的解释器([url=http://iunknown.iteye.com/blog/48199]spxml[/url]),现在用同样的思路来试试实现 json 的解释器。 state pattern 用于这两个解释器的实现的确非常合适,可以有效地降低代码的复杂度。

在 [url]http://json.org[/url] 上有 json 完整的语法图,看起来非常简单。
在做调研的时候,发现 json 已经成为一个 rfc 了
[url]http://www.ietf.org/rfc/rfc4627.txt[/url]

实现的结果是又在 googlecode 上增加了一个项目
[url]http://code.google.com/p/spjson/[/url]
[url]http://spjson.googlecode.com/files/spjson-0.1.src.tar.gz[/url]

基于 state pattern ,可以非常方便地实现 stream-oriented 的解释器。目前实现了基于 pull 和 dom 的两种 json 解释器。底层是 pull 模型,dom 模型是基于 pull 来实现的。dom 模型解释的结果是一颗树,为这个树实现了序列化到字节流的功能和 iterator 。

在 xml 中有 xpath ,json 也有人提出了 jpath 的概念。看了一些实现,从代码量来说,非常复杂。下一步看看有没有可能实现 jpath 的功能。

在 rfc4627 中也定义了 json 和 charset encoding 的关系。这个目前也还没实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值