nextagencyio / json_import
Import Drupal model and content from JSON via admin form or drush command.
Installs: 31
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:drupal-module
Requires
- drupal/core: ^10 || ^11
- drupal/paragraphs: *
- justinrainbow/json-schema: ^5.2
Requires (Dev)
- drupal/core-dev: ^10 || ^11
This package is auto-updated.
Last update: 2025-08-29 00:30:09 UTC
README
Overview
The JSON Import module allows you to import Drupal content types, paragraph types, and content from JSON configuration via an admin form or drush command. This module is forked from dcloud_import
but focuses specifically on JSON-based imports without API functionality.
Features
- Admin form interface for importing JSON configurations
- Drush command for command-line imports
- Support for content types, paragraph types, fields, and content
- Preview mode to see what would be imported
- Comprehensive validation of JSON structure
Installation
- Place the module in
modules/custom/json_import
- Enable the module:
drush en json_import
Usage
Admin Interface
Navigate to Configuration → Content authoring → JSON Content Import (/admin/config/content/json-import
)
The form provides:
- JSON input field with validation
- Example JSON configuration
- Preview mode option
Drush Command
Import from command line:
# Import from a JSON file drush json_import:import /path/to/config.json # Preview what would be imported drush json_import:import /path/to/config.json --preview # Using alias drush ji:import /path/to/config.json
JSON Structure
The module expects JSON with model
and/or content
arrays:
{ "model": [ { "bundle": "event", "description": "Content type for events", "label": "Event", "body": true, "fields": [ { "id": "event_date", "label": "Event Date", "type": "datetime" } ] } ], "content": [ { "id": "event1", "type": "node.event", "values": { "title": "Sample Event", "event_date": "2024-03-15T09:00:00" } } ] }
Permissions
- Import JSON Configuration: Required to use both the admin form and drush command
Requirements
- Drupal 10 or 11
- Paragraphs module (for paragraph type imports)
Technical Details
Services
json_import.importer
: Main import servicejson_import.field_type_mapper
: Maps field typesjson_import.commands
: Drush command service
Key Classes
JsonImportForm
: Admin formJsonImportCommands
: Drush commandsDrupalContentImporter
: Core import logic
File Structure
json_import/
├── json_import.info.yml
├── json_import.permissions.yml
├── json_import.routing.yml
├── json_import.services.yml
├── json_import.links.menu.yml
├── src/
│ ├── Commands/
│ │ └── JsonImportCommands.php
│ ├── Form/
│ │ └── JsonImportForm.php
│ └── Service/
│ ├── DrupalContentImporter.php
│ ├── FieldTypeMapper.php
│ └── FileValidationService.php
└── resources/
└── sample.json
Differences from dcloud_import
- Removed all API endpoints and controllers
- Simplified permissions to single import permission
- Added drush command functionality
- Focused on JSON import only
- Updated module metadata and menu placement