1

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)
4

1 に答える 1

1

わかりました、これは Rails や Ruby の構成とは関係ありません...エンジニアの 1 人がこれを 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

明日、この質問を削除できると思います

于 2012-05-29T17:50:02.907 に答える