使用 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 類型設置中調整批次大小)。