module ERB::Util
def json_escape(s)
json_escape('{"name":"john","created_at":"2010-04-28T01:39:31Z","id":1}')
valid JSON. In particular double quotes are removed:
Note that after this operation is performed the output is not
# => is a \u003E 0 \u0026 a \u003C 10?
json_escape('is a > 0 & a < 10?')
using \uXXXX JavaScript escape sequences for string literals:
A utility method for escaping HTML entities in JSON strings
def json_escape(s) result = s.to_s.gsub(JSON_ESCAPE_REGEXP, JSON_ESCAPE) s.html_safe? ? result.html_safe : result end