`
iunknown
  • 浏览: 403827 次
社区版块
存档分类
最新评论

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

阅读更多
之前用 state pattern 实现过 xml 的解释器(spxml),现在用同样的思路来试试实现 json 的解释器。 state pattern 用于这两个解释器的实现的确非常合适,可以有效地降低代码的复杂度。

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

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

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

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

在 rfc4627 中也定义了 json 和 charset encoding 的关系。这个目前也还没实现。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics