JSON from Text
Descripción
Sección titulada «Descripción»Las IA suelen devolver el JSON envuelto en texto: un bloque ```json, una frase delante y otra detrás, comillas tipográficas o una coma sobrante al final. El nodo JSON from Text localiza el primer objeto o lista JSON bien formado dentro del texto, lo convierte en datos y, si quieres, comprueba que tenga los campos obligatorios.
Si no indicas el campo con el texto, el nodo usa la propia entrada o el primer campo habitual de una respuesta de IA o HTTP: contenido, content, text, output, response, respuesta, message, result, reply (y choices[0].message.content). Si el campo ya contiene un objeto, lo deja pasar tal cual.
Configuración
Sección titulada «Configuración»| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| path | text | No | Ruta al texto que contiene el JSON. Vacío = la entrada o el primer campo habitual |
| expect | select | No | auto (lo que haya), object (solo un objeto { }) o array (solo una lista [ ]) |
| requiredFields | text | No | Campos obligatorios separados por comas (admite rutas como autor.nombre). Si falta alguno o está vacío, el resultado no es válido |
| fallbackField | text | No | Si la IA contesta con texto sin JSON, el texto entero se usa como este campo (por ejemplo contenido_html) en vez de dar error, y se devuelve jsonRespaldo: true. Los campos obligatorios se siguen comprobando |
| onInvalid | select | No | error (por defecto: detiene la ejecución con un error) o continue (sigue con jsonOk = false) |
| errorMessage | text | No | Texto que encabeza el error cuando se detiene |
| spread | boolean | No | Además del campo de salida, copia cada campo del objeto al nivel principal ({{titulo}} en vez de {{json.titulo}}) |
| outputKey | text | No | Campo donde se guarda el JSON (por defecto json) |
El nodo conserva los datos que llegaron y añade:
{ "contenido": "Aquí tienes: ```json {\"titulo\":\"Hola\"} ```", "json": { "titulo": "Hola" }, "jsonOk": true}Con onInvalid: continue y un resultado no válido: jsonOk es false, json es el JSON encontrado (o null) y jsonFaltan lista los campos obligatorios que no estaban. Úsalo con un nodo de decisión sobre data.jsonOk.
Qué tolera
Sección titulada «Qué tolera»- Bloques
```jsono```, y texto antes o después. - Llaves y corchetes dentro de cadenas de texto.
- Comas finales (
{"a":1,}) y comillas tipográficas (“ ”). - Varios bloques: ignora los que no son JSON válido y toma el primero que lo es (y que cumple
expect).
Ejemplo de Uso
Sección titulada «Ejemplo de Uso»Artículo generado por una IA
Sección titulada «Artículo generado por una IA»{ "label": "Interpretar la respuesta", "path": "contenido", "expect": "object", "requiredFields": "titulo, contenido_html", "errorMessage": "La IA no devolvió un artículo interpretable", "spread": true}Los nodos siguientes pueden usar {{titulo}} y {{contenido_html}}. Si la IA no devuelve un JSON con esos campos, la ejecución se detiene con un mensaje claro.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- validate (Validador - para comprobar y limpiar el contenido)
- editFields (Edit Fields - para dar forma al resultado)
- decision (Nodo de decisión - para actuar según
jsonOk)