【发布时间】:2019-02-19 08:40:20
【问题描述】:
我想将 ruby 中的嵌套数据结构转储到 json(我知道 Marshal 模块,但我需要标准格式)并能够再次加载/解析数据结构。 Catch:我使用结构(或更简单的例子:哈希)作为哈希的键。示例:
require 'json'
h = {{hello: 123} => 123}
JSON.parse(JSON.generate(h)) #=> {"{:hello=>123}"=>123}
所以问题是,JSON.generate(h) 将键 {:hello=>123} 序列化为字符串,当我再次解析结果时,它仍然是字符串。
如何解决这个问题并在生成/解析后恢复原始结构?
【问题讨论】:
-
JSON.parse(JSON.generate(h)).transform_keys(&method(:eval))或Marshal.load(Marshal.dump(h))