Doch hab ich eigentlich genau das geschrieben, denn ich hab geschrieben, dass dadurch SQL den Backslash automatisch hinzufügt.
Es ist nicht der CAST der das macht, sondern die JSON-Funktion die dann den String (in dem die JSON-Daten enthalten sind) so aufbereiten, dass es ein gültiges JSON entsteht.

Das was du beschrieben hast, war genau das was ich meinte mit "etwas vergessen" und "hüpft man von ein Problem zum nächsten".
Das alles erspart man sich, wenn man einfach die Standard-Funktionen verwendet, die einem das alles abnehmen.
Gleiches gilt auch bei HTML, XML usw.