AK+Kernel: Escape JSON keys & values

Grab the escaping logic from JSON string value serialization and use
it for serializing all keys and values.

Fixes #3917.
This commit is contained in:
Andreas Kling 2020-11-02 12:56:36 +01:00
commit 5e164052f6
Notes: sideshowbarker 2024-07-19 01:35:30 +09:00
7 changed files with 68 additions and 33 deletions

View file

@ -144,4 +144,32 @@ void StringBuilder::append(const Utf32View& utf32_view)
}
}
void StringBuilder::append_escaped_for_json(const StringView& string)
{
for (auto ch : string) {
switch (ch) {
case '\e':
append("\\u001B");
break;
case '\b':
append("\\b");
break;
case '\n':
append("\\n");
break;
case '\t':
append("\\t");
break;
case '\"':
append("\\\"");
break;
case '\\':
append("\\\\");
break;
default:
append(ch);
}
}
}
}