iT邦幫忙

0

【Day 08】資料塑形:使用 Code / JSON 解析節點將 AI 回應轉為標準欄位

  • 分享至 

  • xImage
  •  

昨天我們成功在 n8n 透過 HTTP Request 節點調用了 Dify API,並順利在回傳的 answer 欄位中拿到了待辦事項資料。然而細心的讀者一定有發現:Dify 回傳的 answer 雖然內容長得像 JSON,但本質上它仍然是一整段被引號包覆的「純字串(String)」。今天我們要使用 n8n 內建的 Code 節點,將這段字串正式解析(Parse)為獨立的物件陣列,方便後續工作流程直接取用個別欄位!

為什麼需要 JSON.parse 資料塑形?

  • 型態轉換:API 回傳的文字內容無法直接當成結構化陣列讀取,必須透過解析轉回標準的 JavaScript 物件/陣列。
  • 項目拆解 (Item Lists):將單一字串拆成 3 筆獨立的待辦項目,使 n8n 能自動對每一筆待辦進行迴圈處理(例如一次新增 3 筆行事曆或 Notion 資料)。
  • 容錯處理:透過簡單的腳本過濾多餘換行符號或非法字元,確保自動化管線運作穩定。

核心實作步驟說明

  1. 新增 Code 節點:
    在 n8n 畫布中點擊 +,搜尋並新增 「Code」 節點,並將其連接在昨天的 「HTTP Request」 節點之後。
  2. 撰寫解析邏輯 (Run Once for All Items):
    進入 Code 節點設定面板,執行模式保持預設的 Run Once for All Items,語言選擇 JavaScript,並貼入以下程式碼:
// 1. 取得上一關 HTTP Request 回傳的 answer 字串
const rawAnswer = $input.first().json.answer;

// 2. 將 JSON 字串解析成實際的物件陣列
const tasks = JSON.parse(rawAnswer);

// 3. 轉化為 n8n 接受的 Item 格式並回傳
return tasks.map(task => ({
  json: {
    task: task.task,
    priority: task.priority,
    time: task.time
  }
}));

  1. 執行測試並驗證輸出:
    點擊右上角橘色的 「Test step(執行步驟)」。觀察右側產出視窗:原本單一的字串會被成功拆解為 3 items,且每個項目都具備獨立的 task、priority 與 time 欄位!

https://ithelp.ithome.com.tw/upload/images/20261009/201843864MGh2ZA4Y3.png

今天我們成功解決了 LLM 串接最關鍵的「資料塑形」瓶頸。明天「Day 09」我們將進入資料落地的實用階段:串接 Google Sheets 或 Notion,將解析出來的待辦清單自動寫入雲端表格!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言