You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在n8n中将LLM返回的文本结果解析为JSON?

在n8n中解析LLM返回的JSON格式文本

问题分析

LLM返回的内容包含Markdown代码块标记(```json和```),直接使用字符串替换后调用JSON.parse返回undefined,大概率是替换不彻底或残留了干扰解析的空白字符,也可能是表达式中转义写法错误导致替换失效。

解决方案

方案1:修正字符串替换逻辑并清理空白

调整表达式,去掉不必要的反引号转义,同时添加trim()清除前后空白:

{{ JSON.parse($json["message"]["content"].replace("```json", "").replace("```", "").trim()) }}

方案2:用正则精准匹配移除代码块标记

正则能更灵活处理代码块前后的换行、空格,确保只保留中间的JSON内容:

{{ JSON.parse($json["message"]["content"].replace(/^```json\s*([\s\S]*?)\s*```$/, '$1')) }}
  • ^```json\s*:匹配开头的```json及后续任意空白/换行
  • ([\s\S]*?):非贪婪匹配中间所有内容(含换行)并捕获
  • \s*```$:匹配结尾的```及前面任意空白/换行
  • $1:用捕获的纯净JSON内容替换整个字符串

方案3:使用n8n内置节点分步处理

如果表达式解析存在问题,可拆分步骤操作:

  1. 添加Set节点:新建字段(如cleanedJson),设置值为:
    {{ $json["message"]["content"].replace(/^```json\s*/, '').replace(/\s*```$/, '').trim() }}
    
  2. 添加JSON节点:在节点的「Input」选项中选择cleanedJson字段,节点会自动将字符串解析为JSON对象。

内容的提问来源于stack exchange,提问作者Gulzar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:05:57