JSON変換モジュール
と、思ったけど、入れ子になったHashとArrayをJSONに変換するRubyスクリプトだけ貼りつけておこう。上のAjaxのCGI側で使っています。
module JSON module_function def str2json(str) '"' + str.gsub(/"/,'\"') + '"' end def value2json(value) case value.class.to_s when 'Hash' return hash2json(value) when 'Array' return array2json(value) when 'String' return str2json(value) when 'NilClass' return "null" else return str2json(value.to_s) end end def hash2json(hash) members = hash.map do |key,value| "#{str2json(key)} : #{value2json(value)}" end.join(',') return "{ #{members} }" end def array2json(ar) ret = ar.map do |item| value2json(item) end.join(',') return "[#{ret}]" end end
使い方は、こんな感じ。
test = {} test['hoge'] = [1,2,3,'string'] puts JSON.hash2json(test) => { "hoge" : ["1","2","3","string"] }
適当に作ったので変かもしれません。特に文字列をエスケープしているあたり。ツッコミ歓迎。
著作権は主張しませんが、自己責任でのご利用をお願いします。