¿Qué es JSON? Sintaxis, Tipos de Datos y Ejemplos de API

¿Qué es JSON?

La API de Scraping sin rasguños devuelve datos estructurados de fuentes web compatibles para aplicaciones que necesitan resultados legibles por máquinas.

JSON es un formato de texto para representar datos estructurados. Un objeto agrupa valores nombrados, mientras que un array mantiene los valores en orden. El formato es lo suficientemente pequeño como para inspeccionarse en un editor de texto y lo suficientemente preciso para que el software en diferentes lenguajes intercambie las mismas estructuras básicas. Su nombre proviene de la Notación de Objetos de JavaScript, pero JSON es un formato de datos en lugar de un programa de JavaScript.

Una respuesta JSON es útil solo cuando el lector sabe lo que significan los campos. Un registro de producto con un precio, moneda y disponibilidad es más informativo que un número sin etiquetas. Esta guía explica la gramática, muestra cómo JSON encaja en un intercambio HTTP y separa la validez de la sintaxis del problema más difícil de datos confiables.

Cómo JSON Representa Datos

JSON tiene seis tipos de valores: objeto, array, cadena, número, booleano y nulo. La especificación del formato JSON define su gramática. Un objeto se escribe con llaves y consta de pares de nombre y valor. Un array se escribe con corchetes y contiene una secuencia ordenada de valores. El mismo array puede contener varios tipos de valores JSON, aunque un esquema de aplicación puede imponer reglas más estrictas.

Las cadenas usan comillas dobles. Dentro de una cadena, las comillas, las barras invertidas y ciertos caracteres de control necesitan ser escapados. Los números usan una gramática decimal; JSON no tiene representación incorporada para valores como infinito o un valor de JavaScript indefinido. Las palabras true, false y null son literales en minúsculas. Un analizador puede rechazar un documento debido a una sola coma final o a un nombre de propiedad no entrecomillado.

Por ejemplo, una respuesta hipotética puede contener un objeto llamado item con un título de cadena, un precio numérico, un valor booleano inStock y un array de etiquetas. La forma externa indica qué campos viajan juntos; los valores dicen lo que se observó. JSON no prescribe una moneda, zona horaria o definición comercial para esos campos. El productor y el consumidor aún necesitan un contrato que otorgue a cada nombre un significado estable.

Lo que un Documento JSON Puede y No Puede Garantizar

JSON válido prueba que el texto sigue una gramática. No prueba que exista un campo requerido, que el precio sea actual o que una URL sea segura para abrir. Un analizador puede aceptar un objeto cuyos campos están incorrectos para la operación en cuestión. Después de analizar, valida la forma esperada, los rangos de valores y los identificadores antes de insertar los datos en una interfaz de usuario o trabajo posterior.

Los nombres de objetos duplicados son particularmente incómodos. El formato describe los nombres dentro de un objeto como idealmente únicos, sin embargo, los analizadores pueden manejar repeticiones de diferentes maneras. Una implementación puede mantener el último valor mientras otra informa un error. Si una decisión de seguridad depende de un campo, no permitas que dos copias conflictivas de ese nombre pasen silenciosamente a través de diferentes capas del sistema.

JSON tampoco lleva un tipo de fecha nativo, un blob binario o una declaración de esquema. Las aplicaciones comúnmente codifican tiempos como cadenas y contenido binario a través de una representación acordada, pero esos son convenciones impuestas por encima del formato básico. Documenta la convención junto al campo. De lo contrario, dos clientes pueden analizar el mismo texto con éxito y aún así interpretarlo de manera diferente.

Cómo JSON Viaja a Través de una API

Una API HTTP puede poner JSON en un cuerpo de solicitud, un cuerpo de respuesta o ambos. El campo Content-Type identifica la representación para que el receptor pueda elegir un analizador adecuado. La especificación de semántica HTTP separa los metadatos del mensaje del cuerpo que se está transfiriendo. Un estado de éxito HTTP dice algo sobre el resultado de la solicitud; el cuerpo de la respuesta describe el recurso o resultado devuelto.

Un cliente debe verificar el estado de la respuesta y el tipo de medio esperado antes de suponer que cada cuerpo es JSON. Fallos de autenticación, errores de puerta de enlace y páginas de mantenimiento pueden devolver otro formato. Analiza solo después de confirmar que el cuerpo recibido pertenece a la operación esperada. Luego inspecciona una ruta de campo documentada en lugar de asumir que todos los servicios envuelven resultados en una propiedad llamada data.

La introducción a la API de Scraping sin rasguños describe solicitudes seleccionadas por actores y salida estructurada. Ese es un uso concreto para JSON: una aplicación envía un objeto de entrada documentado y lee el resultado específico del actor. Diferentes actores pueden tener diferentes campos, por lo que un único analizador genérico puede decodificar el texto mientras que un mapeo específico del producto aún tiene que interpretarlo.

Objetos, Arrays y Valores Perdidos

Un objeto responde a una pregunta sobre propiedades nombradas; un array responde a una pregunta sobre secuencia. Una lista de resultados de búsqueda se representa naturalmente como un array de objetos de resultados, con cada objeto conteniendo campos como un título y un enlace. El objeto de respuesta circundante también puede llevar paginación o metadatos. Separar esos niveles facilita explicar cuáles campos describen un resultado y cuáles describen toda la solicitud.

Una propiedad faltante no es lo mismo que una propiedad cuyo valor es nulo. Faltante puede significar que el productor omitió un campo; nulo aparece explícitamente en el documento. Ninguno de los casos debe tratarse automáticamente como cero o como una cadena vacía. Decide cómo maneja cada caso la aplicación consumidora y prueba esa decisión contra el contrato real de la API.

Los números merecen cuidado similar. JSON proporciona una gramática numérica, pero los idiomas difieren en cómo almacenan enteros muy grandes y fracciones decimales. El dinero y los identificadores pueden necesitar una representación de cadena o decimal documentada en lugar de una suposición de punto flotante. La interfaz JSON de JavaScript muestra las operaciones de análisis y serialización familiares, mientras que el modelo de datos aún requiere decisiones a nivel de aplicación.

Validando y depurando JSON en la práctica

Comience con la respuesta en bruto en lugar de una captura de pantalla de lo que mostró un panel. Confirme su estado, tipo de medio y cuerpo completo. Si el análisis falla, localice el primer error de sintaxis: una comilla sin escapar, un corchete de cierre faltante o una coma al final suelen ser suficientes. Si el análisis tiene éxito pero la aplicación aún falla, inspeccione la ruta y el tipo de campo que la aplicación espera.

Escriba comprobaciones sobre el significado en lugar de la mera presencia. Un array de resultados puede estar presente y vacío; eso puede ser un resultado válido de no resultados o evidencia de un problema de acceso aguas arriba. Una URL puede ser una cadena y aún así apuntar a una página no relacionada. Mantenga un pequeño conjunto de respuestas conocidas y casos límite como ejemplos de contrato, claramente etiquetados como ejemplos en lugar de capturas en vivo.

Al ingerir datos web públicos, preserve un enlace al registro fuente y el contexto de observación cuando el flujo de trabajo necesita auditoría. API de Scraping Sin Residuos es una forma de obtener resultados estructurados de fuentes compatibles. La aplicación que almacena esos resultados aún debe validar el esquema específico del actor y decidir cómo manejar los campos que varían entre objetivos.

Cuándo JSON es la representación correcta

JSON es una opción sólida para intercambiar registros estructurados de tamaño pequeño a moderado entre servicios web y clientes. Es legible sin un visor especializado, y la mayoría de los lenguajes tienen analizadores maduros. Eso lo hace conveniente para configuraciones, solicitudes de API y registros extraídos que necesitan pasar por varios sistemas. La legibilidad no significa que un humano deba editar cargas útiles de producción a mano.

Para exportaciones tabulares, CSV puede ser más fácil para hojas de cálculo, aunque no representa naturalmente estructuras anidadas. HTML preserva la estructura y presentación de la página, pero generalmente necesita extracción antes de que una aplicación pueda consultar campos de negocio de manera confiable. Un formato binario puede reducir el tamaño o agregar un esquema más sólido para tráfico interno de alto volumen. Elija de acuerdo con la forma de los datos y los sistemas que los consumen.

Una pregunta de diseño útil es si el consumidor necesita la página original o un registro seleccionado. Si el consumidor necesita un título de producto y disponibilidad de un actor compatible, JSON estructurado reduce el trabajo de análisis. Si el consumidor necesita inspeccionar el marcado exacto que produjo un resultado, conserve o solicite una representación adecuada de la página también. El relacionado Guía del actor de Scraper API ilustra por qué los sobres de salida y los campos deben ser leídos actor por actor.

Conclusión

JSON proporciona una gramática de texto precisa para intercambiar valores estructurados. No proporciona las reglas comerciales que hacen que esos valores sean confiables. Defina la forma esperada, inspeccione las respuestas reales de la API y valide los campos que su aplicación usa antes de tratar un documento analizado como un registro confiable.

Convierta datos web estructurados en registros utilizables

Explore los actores documentados de la API de Scraping y mapée sus campos devueltos a su esquema de aplicación.

Regístrese hoy y obtenga $5 en crédito gratuito — sin tarjeta de crédito requerida.

Reclame su crédito de $5 →

FAQ

¿Es JSON lo mismo que JavaScript?

JSON es un formato de datos independiente del lenguaje inspirado en la notación de objetos de JavaScript. JavaScript puede analizar y serializar JSON, pero JSON excluye expresiones de JavaScript, funciones, comentarios y valores indefinidos. Trate el JSON entrante como datos para analizar y validar, no como código para ejecutar.

¿Puede un archivo JSON contener más de un objeto?

Un solo texto JSON puede tener un array que contenga muchos objetos, o un objeto que contenga objetos anidados. No puede contener varios valores JSON de nivel superior colocados simplemente uno después de otro y seguir siendo un solo texto JSON estándar. A veces se utiliza un formato orientado a líneas por ese propósito.

¿Validar JSON significa que los datos son correctos?

JSON válido solo significa que el texto obedece la sintaxis JSON. Los contenidos pueden estar incompletos, desactualizados, ser engañosos o incompatibles con el esquema del consumidor. Verifique los campos obligatorios, tipos, contexto de origen y reglas comerciales después del análisis.

¿Por qué a veces una API devuelve HTML en lugar de JSON?

Un cliente de API puede recibir HTML cuando llega a una página web, un desafío de acceso, o una superficie de error en lugar de la respuesta de API esperada. Inspeccione el estado HTTP, la URL final y el tipo de medio antes de analizar. Una conexión de red exitosa por sí sola no establece que se haya entregado el resultado JSON previsto.

Referencias