之前用 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 的关系。这个目前也还没实现。
分享到:
相关推荐
基于state pattern实现的xml解释器
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
Head First 设计模式 (十) 状态模式(State pattern) C++实现
状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互
StatePattern.unitypackage是一个unity演示的状态模式。有需要的同学可以自行下载。
基于simulink的计时器,方便学习stateflow,Stateflow是一个跟Simulink联合起来使用的,可视化图形界面工具。在Simulink环境下,它是用来模拟和控制一些逻辑系统. Stateflow跟Simulink是完美结合在一起的,可以建模...
stateflow实现的计数器,与matlab自带的实例有些区别
使用thisfile recommended.json_parse.js:该文件包含替代JSON的parse函数thatuses递归下降而不是eval.json_parse_state.js:此文件包含替代JSON的parse函数thatuses状态机器代替eval.cycle.js:这个文件包含了两个...
json2.js: This file creates a JSON property in the global object, if there isn't already one, setting its value to an object containing a stringify method and a parse method. The parse method uses ...
该工具包里包含了 josn2.js、json.js、 json_parse.js、json_parse_state.js、cycle.js 五个js 包。均是2015年最新版的。
json2.js,可用于json格式序列化和反序列化 包括:json2.js json_parse.js json_parse_state.js jsonzip.js cycle.js
美国50个州的json数据,有中文和英文。需要的可以下载
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...
在winform中解析Json字符串,只需要引用dll,即可解析json成相应的对象,非常方便。 public void GetJson(string sNu) { string sUrl = "******"; WebClient client = new WebClient(); client.Credentials = ...
php-jsond, PHP JSON扩展和新解析器 带新解码器的PHP JSON扩展PHP jsond是一个用于PHP的新的JSON解析器安装 Linux PECL这个扩展在PECL上可用。 软件包当前不稳定。 如果配置 preferre_state 稳定,则需要指定版本。
状态模式定义Allow an object to alter its behavior when its internal state changes. The
statepattern-JAVASCRIPT
请求发送者与接收者解耦——命令模式(六) 解释器模式-Interpreter Pattern 自定义语言的实现——解释器模式(一) 自定义语言的实现——解释器模式(二) 自定义语言的实现——解释器模式(三) 自定义语言的实现...
设计模式中状态模式的例子代码,并包含函数模板模式;设计模式研究学习