你如何为Rebol 3编写一个编解码器?

时间:2013-01-16 18:17:52

标签: rebol rebol3

我写了JSON encoder/decoder for Rebol 2。我正在为Rebol 3重写它,并希望在Rebol 3中将其作为codec提供:

load %data.json
save %data.json object
decode 'json to-binary {["some","json"]}

我应该怎么做?

在询问时,关于这个主题的文档很少。

4 个答案:

答案 0 :(得分:5)

简单的答案是,你做不到。至于为什么,有几个答案。

  1. 当前的编解码器模型未记录。只有Carl知道如何编写编解码器。虽然有人可能能够查看来源并弄清楚,但还没有人。
  2. 当前的编解码器功能不够灵活,无法在此处制作您想要的内容。您可以创建解码器,但不能编码器,因为encode只能获取图像,二进制文件或字符串。也许只是有一个解码器就足够了。
  3. 当前模型仅支持本机编解码器。您不能在Rebol代码中编写编解码器,也不能在解析器中编写代码,这意味着您无法使用parse。你有解析器的本机代码版本吗?
  4. 当前的编解码器模型是我们希望最终拥有的编解码器模型的占位符。这就是为什么它没有得到很好的记录。我们最终希望支持增量en /解码,可以直接从文件或其他端口读取的编解码器,以及Rebol编解码器。然而,除了最初的批评之外,我们还没有真正决定最终的模型,甚至还没有开始讨论它的设计方式。
  5. 我希望你现在能够更好地回答你的问题。

答案 1 :(得分:4)

编解码器处于高度未完成的状态。我提出需要某种流媒体机制,IIRC Carl了解需要,但解决方案从未被概括过。任务同上 - 目前的“实施”远不是卡尔为R3任务所设想的......

答案 2 :(得分:2)

有一个工具,请阅读:http://rebol2.blogspot.it/2012/12/json.html

并且: http://www.rebol.com/article/0522.html

然而,json是一种处理数据的复杂方法,在我看来,rebol block是完美的。

答案 3 :(得分:0)

我刚注意到从Rebol 3中删除了 system / catalog / codecs ;所以我想这个功能在2009年3月31日之后被删除了。

>> ? system/catalog
SYSTEM/CATALOG is an object of value:
 datatypes       block!    length: 56
 actions         block!    length: 56
 natives         block!    length: 159
 errors          object!   [Throw Note Syntax Script Math Access Command...
 reflectors      block!    length: 6
 boot-flags      block!    length: 18