The escape_javascript method in ActionView escapes the apostrophe \'
as backslash apostrophe \\\'
, which gives errors when parsing as JSON.
For
I ended up adding a new escape_json
method to my application_helper.rb, based on the escape_javascript
method found in ActionView::Helpers::JavaScriptHelper
:
JSON_ESCAPE_MAP = {
'\\' => '\\\\',
'' => '<\/',
"\r\n" => '\n',
"\n" => '\n',
"\r" => '\n',
'"' => '\\"' }
def escape_json(json)
json.gsub(/(\\|<\/|\r\n|[\n\r"])/) { JSON_ESCAPE_MAP[$1] }
end
Anyone know of a better workaround than this?