Ähm... ich denke, das ist richtig Weg eigentlich. \u00df ist eine korrekte Unicode-Darstellung von ß . Wenn Sie json_decode() es zurück, wird es zu ß wieder.
Wo bereitet Ihnen das Probleme? Entschlüsselt das empfangende Ende es nicht richtig? Dies sollte der Fall sein, wenn Sie Standard-json_* verwenden Funktionen.
Alle Beispiele im Handbuch zeigen dasselbe - Zeichen außerhalb des ASCII-Bereichs werden in numerische Sequenzen umgewandelt.