我发现了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"
?
答案 0 :(得分:2)
不是简单的答案。大部分时间它只对哈希真的很重要,并且在哈希上有作弊,symbolize_keys!
。底线是JSON不理解符号,只是字符串。
由于你使用的是MultiJson,你也可以让MultiJson为你做这个......
MultiJson.load('{"abc":"def"}', :symbolize_keys => true)