使用 Drupal Feeds 匯入 JSON 格式內容
2025-05-09
標籤: 模組
廣告
                
                
                
            如何在 Drupal(適用於 Drupal 10 或其他現代版本)中使用 Feeds 模組匯入 JSON 格式的內容。本指南假設您對 Drupal 基本操作(如模組安裝和內容類型管理)有一定了解。
步驟 1:安裝必要的模組
要匯入 JSON 格式內容,您需要以下模組:
- Feeds: 提供匯入資料的核心功能。
- Feeds Tamper(可選):用於在匯入前對資料進行處理(如格式轉換)。
- Feeds JSONPath Parser 或 Feeds Extensible Parsers:用於解析 JSON 格式資料。
安裝方法
- 
使用 Composer 安裝模組: bash composer require 'drupal/feeds:^3.0' composer require 'drupal/feeds_tamper:^2.0' composer require 'drupal/feeds_ex:^1.0'
- 
啟用模組: 
- 前往 Drupal 後台:管理 > 擴展。
- 啟用 Feeds、Feeds Tamper(若使用)及Feeds Extensible Parsers。
步驟 2:準備 JSON 資料與內容類型
- 準備 JSON 資料:
- 確保 JSON 檔案格式正確,例如:
     json [ { "title": "文章標題 1", "body": "文章內容 1", "date": "2025-05-09" }, { "title": "文章標題 2", "body": "文章內容 2", "date": "2025-05-10" } ]
- 
將 JSON 檔案儲存至伺服器可存取的位置(如 sites/default/files/import/data.json),或準備一個公開的 URL(如 API 端點)。
- 
創建目標內容類型: 
- 前往 結構 > 內容類型 > 添加內容類型,創建一個內容類型(如「文章」)。
- 添加對應的字段(如 標題、正文、日期),確保字段名稱與 JSON 資料的鍵名一致或可映射。
步驟 3:配置 Feeds 匯入器
- 創建 Feeds 匯入器:
- 前往 結構 > Feeds 類型 > 添加 Feeds 類型。
- 
設置: - 名稱:例如「JSON 文章匯入」。
- 目標內容類型:選擇剛創建的內容類型(如「文章」)。
 
- 
選擇解析器: 
- 在「解析器」設置中,選擇 JSONPath Parser(來自 Feeds Extensible Parsers)。
- 
配置 JSONPath 表達式,例如: - 上下文:$.*(選擇 JSON 陣列中的每個物件)。
- 字段映射:
- title:- $.title
- body:- $.body
- date:- $.date
 
- 上下文:
- 
映射字段: 
- 
在「映射」設置中,將 JSON 資料的鍵映射到內容類型的字段,例如: - title(JSON) →- 標題(內容類型)。
- body(JSON) →- 正文(內容類型)。
- date(JSON) →- 日期(內容類型)。
 
- 
設置資料來源: 
- 在「提取器」設置中,選擇資料來源:- 檔案上傳:指定本地 JSON 檔案路徑。
- HTTP 提取器:輸入 JSON 資料的 URL(如 API 端點)。
 
- 
可啟用「定期匯入」以自動從 URL 更新資料。 
- 
添加 Tamper 規則(可選): 
- 若需要資料轉換(如日期格式調整),前往「Tamper」標籤。
- 添加規則,例如將 Y-m-d格式轉換為 Drupal 的日期格式。
步驟 4:執行匯入
- 執行匯入:
- 前往 內容 > Feeds > 匯入。
- 選擇剛創建的 Feeds 類型,然後:- 上傳 JSON 檔案(若使用檔案上傳)。
- 或直接點擊「匯入」(若使用 URL)。
 
- 
點擊「匯入」按鈕開始處理。 
- 
檢查結果: 
- 匯入完成後,檢查新創建的節點(內容 > 所有內容)。
- 若有錯誤,查看 Feeds 日誌(管理 > 報告 > Feeds 日誌)。
步驟 5:最佳化與排錯
- 最佳化:
- 使用唯一標識符(如 JSON 中的 ID)設置「唯一值」映射,防止重複匯入。
- 
啟用「更新現有節點」選項以在後續匯入時更新內容。 
- 
常見問題: 
- JSON 解析失敗:- 檢查 JSON 格式是否正確(使用線上工具如 JSONLint)。
- 確認 JSONPath 表達式是否正確。
 
- 字段未正確映射:- 檢查映射設置,確保 JSON 鍵與內容類型字段對應。
 
- 匯入速度慢:- 啟用批次處理(在 Feeds 類型設置中調整批次大小)。