json_field_query
The JSON Field Query & Formatter module provides a field type for storing JSON data with advanced querying capabilities. Unlike basic JSON field modules that only validate and store JSON, this module allows you to extract and display specific parts of JSON data using dot notation queries, making it ideal for working with API responses, complex configurations, and structured data.
It supports :
- Dot Notation Queries: Extract specific values using paths like user.profile.name or products.0.price
- Array Support: Access array elements with indices like items.2.name
- Json Validation
Requirements
- Drupal 10.x or 11.x
- PHP 8.1 or higher
Installation
- Install and enable the module.
- Go to Structure » Content types » [Your content type] » Fields , and Add Field
- Select JSON Field Query field type
- Similarly this field can be added to any other entities as well like taxonomy etc.
Usage:
Add JSON data to your field:
{
"user": {
"personal": {
"firstName": "John",
"lastName": "Doe"
},
"contact": {
"email": "[email protected]"
}
}
}
Now in code these nested values can be accessed easily.
$service = \Drupal::service('json_field_query.json_query_service');
$json_data = $node->get('field_json_data')->value;
$value = $service->queryJson($json_data, 'user.personal.firstName'); // Will display John