如何更改 JSON 結構

描述問題/錯誤/問題

我想將一些資料作為回應傳送給 API 呼叫。但資料正在以以下方式傳送



[
  {
    "status " : "success",

    "data" : [
     {
          "name":"......",
          "rollno.":"....."
     },
     {
          "name":"......",
          "rollno.":"....."
     }
    ]
  }
]



// 我想移除最外層的括號 [] 並直接以 {} 發送它們。

錯誤訊息是什麼(如果有的話)?

請分享您的工作流程

(選擇畫布上的節點並使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)

分享最後一個節點傳回的輸出

有關您的 n8n 設定的資訊

  • n8n 版本:
  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設定(預設:own、main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式):
  • 作業系統:
  1. 開啟您的 Webhook Response 節點。

  2. 找到 Response Body 參數。

  3. 將設定從 All Items 變更為 Custom Body

  4. Body 欄位中,點選 Expression 圖示({{ }} 按鈕),然後輸入以下內容:

{{$json}}

這樣有幫助嗎?

無法理解第 3 步。但使用 {{$json}} 仍然相同(除非我需要像第 3 步那樣改變某些東西。)

@Aarush_Bisht
就這個問題,你只需在你的「回應 Webhook」節點之前添加一個「設定欄位」節點,在「設定欄位」節點中,透過將其模式切換為 JSON 來定義你的整個 JSON 結構,完成後,在「回應 Webhook」節點中,你可以將「回應方式」設定為「第一個傳入項目」,這樣從「設定欄位」節點輸出的任何內容都會自動發送。
像這樣:

還有另一種方式,我不建議用於大型資料,但它也能運作:直接在「回應 Webhook」節點的回應主體中解析 JSON,在那裡定義你的整個 JSON,但前提是它很簡短。
像這樣:
={{ { "status": $json.status, "data": $json.data } }}

我做了,但那個方括號還是出現?為什麼 n8n 本身會把它當作陣列?

@Aarush_Bisht 你有看過 Respond to Webhook 的輸出嗎?由於方括號在那邊不會顯示,我已經親自測試過了。
這是出現在前面的內容:

所以我認為方括號不會出現。它們只會在使用者介面中顯示,而不會在實際請求中顯示。

啊是的!透過『respond to webhook』輸出檢查它後,在使用 set fields 之後,它顯示如預期。