JSON kennt genau sechs Werttypen: Objekt, Array, Zeichenkette, Zahl, Wahrheitswert und null. Alles andere ist ungültig — auch Kommentare, nachgestellte Kommas und einfache Anführungszeichen, die aus JavaScript vertraut sind.
Der Formatierer prüft zuerst und formatiert dann. Schlägt die Prüfung fehl, nennt er die Position, an der der Parser abgebrochen hat — meist steht der eigentliche Fehler ein paar Zeichen davor.
Die drei häufigsten Fehler
Ein Komma hinter dem letzten Element ist in JavaScript erlaubt und in JSON nicht. Einfache Anführungszeichen ebenso wenig — JSON kennt nur doppelte, und zwar auch um die Schlüssel herum.
Der dritte Klassiker sind Sonderzeichen in Zeichenketten: Ein Zeilenumbruch muss als \n geschrieben werden, ein Anführungszeichen als \", ein umgekehrter Schrägstrich verdoppelt. Wer Text aus einer Datenbank direkt einsetzt, stolpert genau hier.
Zahlen sind der stille Fallstrick
JSON legt keine Genauigkeit für Zahlen fest, aber die meisten Verarbeiter lesen sie als 64-Bit-Gleitkommazahl. Ganze Zahlen über 9 007 199 254 740 991 verlieren dadurch Stellen — deshalb werden lange Kennungen üblicherweise als Zeichenkette übertragen.
Führende Nullen sind verboten, ein Plus vor der Zahl auch, und NaN oder Infinity gibt es nicht. Wer diese Werte übertragen muss, schreibt sie als Zeichenkette oder als null.