JSON admite exactamente seis tipos: objeto, array, cadena, número, booleano y null. Todo lo demás es inválido, incluidos los comentarios, las comas finales y las comillas simples que uno conoce de JavaScript.
El formateador valida primero y formatea después. Si la validación falla, indica la posición en la que el analizador se detuvo: el error de verdad suele estar unos caracteres antes.
Los tres errores más frecuentes
Una coma detrás del último elemento vale en JavaScript y no en JSON. Las comillas simples tampoco: JSON solo admite dobles, y además también alrededor de las claves.
El tercer clásico son los caracteres especiales dentro de las cadenas: un salto de línea se escribe \n, una comilla \", y la barra invertida se duplica. Quien pega texto directamente desde una base de datos tropieza justo ahí.
Los números son la trampa silenciosa
JSON no fija la precisión de los números, pero casi todos los analizadores los leen como coma flotante de 64 bits. Los enteros por encima de 9 007 199 254 740 991 pierden cifras, y por eso los identificadores largos se transmiten como cadena.
Los ceros a la izquierda están prohibidos, el signo más delante también, y NaN o Infinity no existen. Quien necesite esos valores los escribe como cadena o como null.