aboutsummaryrefslogtreecommitdiffstats
path: root/backends/json/json.cc
diff options
context:
space:
mode:
Diffstat (limited to 'backends/json/json.cc')
-rw-r--r--backends/json/json.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/backends/json/json.cc b/backends/json/json.cc
index 4aa8046d6..42eedc606 100644
--- a/backends/json/json.cc
+++ b/backends/json/json.cc
@@ -52,8 +52,23 @@ struct JsonWriter
string newstr = "\"";
for (char c : str) {
if (c == '\\')
+ newstr += "\\\\";
+ else if (c == '"')
+ newstr += "\\\"";
+ else if (c == '\b')
+ newstr += "\\b";
+ else if (c == '\f')
+ newstr += "\\f";
+ else if (c == '\n')
+ newstr += "\\n";
+ else if (c == '\r')
+ newstr += "\\r";
+ else if (c == '\t')
+ newstr += "\\t";
+ else if (c < 0x20)
+ newstr += stringf("\\u%04X", c);
+ else
newstr += c;
- newstr += c;
}
return newstr + "\"";
}