使用 Drupal Feeds 匯入 JSON 格式內容

2025-05-09

標籤: 模組

廣告

如何在 Drupal(適用於 Drupal 10 或其他現代版本)中使用 Feeds 模組匯入 JSON 格式的內容。本指南假設您對 Drupal 基本操作(如模組安裝和內容類型管理)有一定了解。


步驟 1:安裝必要的模組

要匯入 JSON 格式內容,您需要以下模組:

  1. Feeds: 提供匯入資料的核心功能。
  2. Feeds Tamper(可選):用於在匯入前對資料進行處理(如格式轉換)。
  3. Feeds JSONPath ParserFeeds Extensible Parsers:用於解析 JSON 格式資料。

安裝方法

  1. 使用 Composer 安裝模組: bash composer require 'drupal/feeds:^3.0' composer require 'drupal/feeds_tamper:^2.0' composer require 'drupal/feeds_ex:^1.0'

  2. 啟用模組:

  3. 前往 Drupal 後台:管理 > 擴展
  4. 啟用 FeedsFeeds Tamper(若使用)及 Feeds Extensible Parsers

步驟 2:準備 JSON 資料與內容類型

  1. 準備 JSON 資料
  2. 確保 JSON 檔案格式正確,例如: json [ { "title": "文章標題 1", "body": "文章內容 1", "date": "2025-05-09" }, { "title": "文章標題 2", "body": "文章內容 2", "date": "2025-05-10" } ]
  3. 將 JSON 檔案儲存至伺服器可存取的位置(如 sites/default/files/import/data.json),或準備一個公開的 URL(如 API 端點)。

  4. 創建目標內容類型

  5. 前往 結構 > 內容類型 > 添加內容類型,創建一個內容類型(如「文章」)。
  6. 添加對應的字段(如 標題正文日期),確保字段名稱與 JSON 資料的鍵名一致或可映射。

步驟 3:配置 Feeds 匯入器

  1. 創建 Feeds 匯入器
  2. 前往 結構 > Feeds 類型 > 添加 Feeds 類型
  3. 設置:

    • 名稱:例如「JSON 文章匯入」。
    • 目標內容類型:選擇剛創建的內容類型(如「文章」)。
  4. 選擇解析器

  5. 在「解析器」設置中,選擇 JSONPath Parser(來自 Feeds Extensible Parsers)。
  6. 配置 JSONPath 表達式,例如:

    • 上下文:$.*(選擇 JSON 陣列中的每個物件)。
    • 字段映射:
    • title: $.title
    • body: $.body
    • date: $.date
  7. 映射字段

  8. 在「映射」設置中,將 JSON 資料的鍵映射到內容類型的字段,例如:

    • title(JSON) → 標題(內容類型)。
    • body(JSON) → 正文(內容類型)。
    • date(JSON) → 日期(內容類型)。
  9. 設置資料來源

  10. 在「提取器」設置中,選擇資料來源:
    • 檔案上傳:指定本地 JSON 檔案路徑。
    • HTTP 提取器:輸入 JSON 資料的 URL(如 API 端點)。
  11. 可啟用「定期匯入」以自動從 URL 更新資料。

  12. 添加 Tamper 規則(可選)

  13. 若需要資料轉換(如日期格式調整),前往「Tamper」標籤。
  14. 添加規則,例如將 Y-m-d 格式轉換為 Drupal 的日期格式。

步驟 4:執行匯入

  1. 執行匯入
  2. 前往 內容 > Feeds > 匯入
  3. 選擇剛創建的 Feeds 類型,然後:
    • 上傳 JSON 檔案(若使用檔案上傳)。
    • 或直接點擊「匯入」(若使用 URL)。
  4. 點擊「匯入」按鈕開始處理。

  5. 檢查結果

  6. 匯入完成後,檢查新創建的節點(內容 > 所有內容)。
  7. 若有錯誤,查看 Feeds 日誌(管理 > 報告 > Feeds 日誌)。

步驟 5:最佳化與排錯

  1. 最佳化
  2. 使用唯一標識符(如 JSON 中的 ID)設置「唯一值」映射,防止重複匯入。
  3. 啟用「更新現有節點」選項以在後續匯入時更新內容。

  4. 常見問題

  5. JSON 解析失敗
    • 檢查 JSON 格式是否正確(使用線上工具如 JSONLint)。
    • 確認 JSONPath 表達式是否正確。
  6. 字段未正確映射
    • 檢查映射設置,確保 JSON 鍵與內容類型字段對應。
  7. 匯入速度慢
    • 啟用批次處理(在 Feeds 類型設置中調整批次大小)。

參考資源

廣告