recorrer mostrar leer externo ejemplos ejemplo datos crear convertir con javascript json

javascript - mostrar - ¿Es esta cadena simple considerada JSON válida?



recorrer json javascript (5)

He visto tantas preguntas complicadas en SO, ya sea que una estructura complicada se considere o no como JSON válida.

Pero, ¿qué pasa con algo del otro lado del espectro?

"12345"

¿Es el JSON válido anterior?


A partir de 2014, RFC 7159 obsoleto JSON RFCs anteriores, y declara que cualquier valor JSON es texto JSON válido y contenido de aplicación / json válido, incluidas las cadenas. Sin embargo, también señala el problema de incompatibilidad con implementaciones JSON antiguas:

Tenga en cuenta que ciertas especificaciones previas de JSON obligaban a un texto JSON a ser un objeto o una matriz. Las implementaciones que generan solo objetos o matrices en las que se solicita un texto JSON serán interoperables en el sentido de que todas las implementaciones aceptarán que se trata de textos JSON conformes.



Es una cadena JSON válida, pero no es un texto JSON válido (es decir, un archivo JSON).

Ver la especificación JSON que dice:

Un texto JSON es un objeto serializado o matriz.

Entonces puede usar eso dentro de algunos JSON, pero no es un archivo JSON completo por sí mismo.

(También vale la pena señalar que la especificación define un analizador JSON:

Un analizador JSON transforma un texto JSON en otra representación.

mi <em> )

Para una segunda opinión, vea jsonlint.com :

Parse error on line 1: "12345" ^ Expecting ''{'', ''[''


Es una sintaxis JSON válida que representa un valor JSON. Si el texto JSON es válido o no (el término formal utilizado para referirse a la salida completa de un generador JSON) depende del contexto.

En el RFC 4627 de Douglas Crockford publicado en 2006 (que define el tipo de application/json internet media):

Un texto JSON es un objeto serializado o matriz.

Por lo tanto, no sería legal utilizar esa cadena simple como el cuerpo completo de una respuesta HTTP con el tipo de medio de Internet application/json .

Sin embargo, la especificación JSON se ha actualizado en RFC 7159 publicado en 2014, así como en la edición 5.1 de ECMA-262 y en ECMA-404 . Las nuevas especificaciones no tienen la limitación anterior, por lo que considerarían que una cadena simple es un texto JSON válido. En RFC 7159:

Un texto JSON es un valor serializado. Tenga en cuenta que ciertas especificaciones previas de JSON obligaban a un texto JSON a ser un objeto o una matriz. Las implementaciones que generan solo objetos o matrices en las que se solicita un texto JSON serán interoperables en el sentido de que todas las implementaciones aceptarán que se trata de textos JSON conformes.

Un valor JSON, de json.org :


No, esto no es válido JSON. JSON es un acrónimo de JavaScript Object Notation. Si bien el ejemplo que proporcionó sería válido dentro de un objeto definido mediante JSON, no es válido en sí mismo. Eche un vistazo a este validador JSON en línea: jsonlint.com

Error de análisis en la línea 1: 12345 ^ Esperando ''{'', ''[''

Puede leer más sobre JSON en json.org .