Habe mal geschaut, wie Ruby on Rails das macht, ein vom Umfang her vergleichbares Webframework.
Rails 4 überschreibt die to_json-Methode von Hashes, sodass gefährliche Zeichen in Strings im JSON mit Unicode-Escape-Sequenzen kodiert werden.
Der Ruby-Hash
{foo: '</script><script>alert(/XSS/)</script>'}
wird durch to_json zum JSON
{"foo":"\u003C/script\u003E\u003Cscript\u003Ealert(/XSS/)\u003C/script\u003E"}
In Rails 3.x muss man das Verhalten explizit aktivieren mit:
ActiveSupport.escape_html_entities_in_json = true
Als Alternative gibt es in ERB (einer Templating-Sprache) eine Methode json_escape, die ähnlich vorgeht.
Mathias