Guía de herramientas JSON: convierte documentos y datos a JSON y de vuelta
Esta guía explica cómo leen y escriben archivos las herramientas de JSON, y qué herramienta usar para cada tarea.
Por qué JSON
JSON es el formato de datos que los programas, los servicios web y los modelos de IA leen con más facilidad: objetos con campos con nombre, listas, números, texto, true, false y null, nada más. Los documentos y las hojas de cálculo no se guardan así. Las herramientas de esta familia salvan esa distancia en ambas direcciones: convierten PDF, archivos Word, hojas de cálculo, CSV, YAML y XML en JSON, y convierten JSON de vuelta en archivos que la gente lee, como PDF, Word, Excel, CSV y HTML.
Cada herramienta se ejecuta en nuestros servidores a través de una conexión segura y elimina el archivo subido en un plazo de 60 minutos. El texto se puede pegar directamente en lugar de subirlo.
Qué herramienta usar para cada tarea
| Tienes | Quieres | Usa |
|---|---|---|
| Un PDF | Texto, tablas y metadatos como datos | PDF a JSON |
| Un documento Word | Encabezados, párrafos, listas y tablas como datos | Word a JSON |
| Un libro de Excel | Registros, filas o columnas | Excel a JSON |
| Un archivo CSV o TSV | Un array JSON con valores tipados | CSV a JSON |
| Un archivo YAML | Los mismos datos como JSON | YAML a JSON |
| Un archivo XML | Objetos, atributos y arrays | XML a JSON |
| JSON | Un PDF para leer o imprimir | JSON a PDF |
| JSON | Un libro de Excel | JSON a Excel |
| JSON | Un archivo CSV | JSON a CSV |
| JSON | Un documento Word editable | JSON a Word |
| JSON | Una página web | JSON a HTML |
| JSON | YAML para un archivo de configuración | JSON a YAML |
| JSON | XML para otro sistema | JSON a XML |
| JSON desordenado o no válido | JSON limpio y válido | Formateador de JSON |
| Dos archivos JSON | Una lista de lo que cambió | Comparar JSON |
Markdown tiene su propio par: Markdown a JSON exporta un árbol de documento y JSON a Markdown convierte JSON en un esquema o una tabla en Markdown.
El formato de documento
PDF a JSON y Word a JSON escriben la misma forma, así que un solo código gestiona ambos. El nivel superior siempre tiene estos campos:
{
"format": "acepdfmd-document",
"version": 1,
"source": {"type": "pdf", "filename": "report.pdf", "title": "Q3 Report", "pages": 12},
"pages": [{"number": 1, "width": 612, "height": 792, "words": 380, "text": "..."}],
"blocks": [
{"type": "heading", "level": 1, "text": "Q3 Report"},
{"type": "paragraph", "text": "Revenue grew..."},
{"type": "list", "ordered": false, "items": [{"level": 0, "text": "Europe"}]},
{"type": "table", "header": ["Region", "Q3"], "rows": [["Europe", 1200.5]]}
],
"tables": [{"index": 1, "page": 3, "rows": [["Region", "Q3"], ["Europe", 1200.5]]}],
"form_fields": [{"name": "email", "type": "text", "value": "[email protected]"}],
"extraction": {"engine": "pdf_to_markdown/layout", "mode": "structure", "ocr": false, "warnings": []}
}
Los campos significan lo siguiente:
- source: qué era el archivo, con los metadatos que llevaba (título, autor, asunto, palabras clave, fechas de creación y modificación, número de páginas). Los archivos Word añaden el número de palabras, tablas e imágenes.
- pages: una entrada por página del PDF con su tamaño en puntos, su rotación, un recuento de palabras y su texto. Los archivos Word no tienen pages, porque Word solo distribuye las páginas cuando imprime.
- blocks: el documento en el orden de lectura. Los tipos son heading (con nivel de 1 a 6), paragraph (con un nombre de estilo opcional de Word), list (ordenada o no, con elementos que tienen un nivel de anidación), table (encabezado más filas tipadas), code, blockquote, rule e image.
- tables: para los PDF, cada tabla detectada con la página en la que se encontró y, para una tabla que continúa, la página en la que termina. Las celdas que parecen números son números.
- form_fields: presente solo cuando el PDF tiene un formulario. Cada campo tiene su nombre, tipo (text, choice, button o signature) y valor actual.
- extraction: qué convertidor se ejecutó, el modo que elegiste, si se necesitó OCR y cualquier advertencia, como una tabla que no se pudo detectar.
La versión 1 de este formato solo gana campos con el tiempo; los campos existentes conservan su nombre y su significado.
Datos tabulares y anidación
CSV y Excel son planos, JSON no lo es. Cuando JSON se convierte a CSV o a Excel, los objetos anidados se aplanan en nombres de columna con puntos y los arrays en nombres indexados, así que un registro de pedido con un objeto customer y un array items se convierte en columnas como customer.name, items[0].sku e items[1].sku. Cuando CSV o Excel vuelven a JSON, los encabezados escritos así se reconstruyen en objetos y arrays anidados. Un encabezado con un punto normal, como un número de versión o una abreviatura, se deja tal cual.
Los valores se tipan al entrar: los números se convierten en números, true y false en booleanos, una celda vacía en null, y todo lo demás sigue siendo una cadena de texto. Las fechas que salen de Excel se escriben como cadenas ISO 8601, porque JSON no tiene tipo de fecha. Cambia la opción de tipos de valores a texto cuando los identificadores con ceros iniciales deban conservarse exactamente como están escritos.
Validación y reparación
Todas las herramientas de JSON validan su entrada de la misma manera. Un archivo no válido se rechaza con la línea y la columna del primer error, y un breve fragmento de esa línea. El Formateador de JSON también puede reparar los errores que la gente pega con más frecuencia: comentarios, comas finales, cadenas con comillas simples, claves sin comillas, True, False y None en mayúscula, NaN e Infinity, y bloques de código alrededor del texto. Cuando se aplica una reparación, el resultado te lo indica, así que nada cambia en silencio a tus espaldas.
Privacidad
Los archivos subidos y el texto pegado se procesan en nuestros servidores y se eliminan en un plazo de 60 minutos; consulta la guía de privacidad para más detalles. Nada se almacena más allá de ese plazo y nada se usa para ningún otro fin.