SQLite

View Ticket
Login
Ticket Hash: ad2559db380abf8e20919136d8ff82267e1f31b3
Title: JSON does not properly escape control characters
Status: Fixed Type: Code_Defect
Severity: Important Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2016-02-04 10:28:59
Version Found In: 3.10.2
User Comments:
drh added on 2016-02-04 10:14:04: (text/x-fossil-wiki)
The JSON specification requires control characters in strings to be escaped,
but the JSON1 extension does not do this.  For example:

<blockquote><verbatim>
SELECT json_array(char(1,8,9,10,12,13,31));
</verbatim></blockquote>

The output should be <nowiki><tt>["\u0001\b\t\n\f\r\u001f"]</tt></nowiki> but
the JSON1 extension leaves the characters unescaped.

This error arose because when I was coding up the JSON1 extension
I missed the part in the JSON specification that says that control
characters must be escaped.  I understood the escapes to be optional
for all characters other than " and \.