【发布时间】:2013-06-18 01:30:58
【问题描述】:
从 ruby 文档中我可以看到 load 方法将 proc 用作 arg 而 parse 没有。还有其他区别吗?比如说,当我有一个 JSON 字符串时,我应该使用哪种方法将其转换为 Ruby 对象?
加载(源,过程 = nil,选项 = {}) 从 JSON 源加载一个 ruby 数据结构并返回它。源可以是类字符串对象、类 IO 对象或响应读取方法的对象。如果给出了 proc,它将以任何嵌套的 Ruby 对象作为参数以深度一阶递归方式调用。要修改默认选项,还要传入可选选项参数。 此方法是 Marshal 和 YAML 的加载/转储接口实现的一部分。 也有别名:restore
解析(来源,选择 = {}) 将 JSON 文档源解析为 Ruby 数据结构并返回。
【问题讨论】:
-
"。如果给出了 proc,它将以任何嵌套的 Ruby 对象作为参数以深度一阶递归方式调用"
-
将 JSON 的接口与 Marshal 的接口进行比较,然后再次阅读
load文档。然后看loadsource。 -
嗨,谢谢。我知道
proc是可选的。我收到这个问题是因为我曾经通过JSON.parse转换 JSON 字符串,但我观看了一个使用JSON.load open('http://some.url').read的截屏视频。