我在rails应用程序上遇到JSON编码问题:
h = {:status=>200, :promotions=>[{:id=>719788, :title=>"test"}]}
和
的结果puts h.to_json
是
{"status":200,"promotions":{"{\"id\"=>719788, \"title\"=>\"test\"}":null}}
这不是预期的结果!
这是正确的结果:
{"promotions":[{"title":"test","id":719788}],"status":200}
什么会在JSON生成中产生这样的错误?
ruby -v
ruby 1.9.3p194 (2012-04-20) [x86_64-linux]
rails -v
Rails 3.1.4
gem list ==> json (1.6.6, 1.5.4)
答案 0 :(得分:1)
好的,这与rails或ruby的配置无关...... 其中一位工程师将其添加到了array
的core_extensions中def to_hash # Recursively convert array to hash
inject({}) do |hash, (key, value)|
value = value.to_hash if value.kind_of?(Array)
hash.merge!({key => value})
end
end
我想我明天可以删除这个问题