Ummm... jag tror att det är rätt sätt faktiskt. \u00df är en korrekt unicode-representation av ß . När du json_decode() om den kommer tillbaka, blir den ß igen.
Var skapar detta problem för dig? Avkodar inte mottagaren det ordentligt? Det bör det om du använder standard json_* funktioner.
Alla exempel i manualen visa samma sak - tecken utanför ASCII-intervallet omvandlas till numeriska sekvenser.