编码和解码ruby符号

时间:2014-03-04 08:03:49

标签: ruby json

我发现了multi_json ruby​​ gem的这种行为:

2.1.0 :001 > require 'multi_json'
 => true
2.1.0 :002 > sym = :symbol
 => :symbol
2.1.0 :003 > sym.class
 => Symbol
2.1.0 :004 > res = MultiJson.load MultiJson.dump(sym)
 => "symbol"
2.1.0 :005 > res.class
 => String

这是存储红宝石符号的合适方式吗? JSON是否提供了一些方法来区分:symbol"string"

1 个答案:

答案 0 :(得分:2)

不是简单的答案。大部分时间它只对哈希真的很重要,并且在哈希上有作弊,symbolize_keys!。底线是JSON不理解符号,只是字符串。

由于你使用的是MultiJson,你也可以让MultiJson为你做这个......

MultiJson.load('{"abc":"def"}', :symbolize_keys => true)