JSON Validator
The json_validator guardrail ensures LLM output is valid JSON, optionally matching a schema.
Import
Section titled “Import”from pydantic_ai_guardrails.guardrails.output import json_validatorBasic Usage
Section titled “Basic Usage”from pydantic_ai_guardrails import GuardedAgentfrom pydantic_ai_guardrails.guardrails.output import json_validator
guarded_agent = GuardedAgent( agent, output_guardrails=[ json_validator(), ],)Parameters
Section titled “Parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
schema | dict | None | None | JSON Schema to validate against |
Examples
Section titled “Examples”Basic JSON Validation
Section titled “Basic JSON Validation”# Just check it's valid JSONguardrail = json_validator()Schema Validation
Section titled “Schema Validation”guardrail = json_validator( schema={ 'type': 'object', 'properties': { 'name': {'type': 'string'}, 'age': {'type': 'integer', 'minimum': 0}, 'email': {'type': 'string', 'format': 'email'}, }, 'required': ['name', 'age'], })Array Schema
Section titled “Array Schema”guardrail = json_validator( schema={ 'type': 'array', 'items': { 'type': 'object', 'properties': { 'id': {'type': 'integer'}, 'title': {'type': 'string'}, }, }, })Violation Result
Section titled “Violation Result”When triggered, returns:
{ 'tripwire_triggered': True, 'message': 'Invalid JSON: Expecting property name', 'severity': 'high', 'metadata': { 'error': 'JSONDecodeError', 'position': 42, }, 'suggestion': 'Ensure output is valid JSON format',}Use Cases
Section titled “Use Cases”- API responses: Ensure structured output
- Data extraction: Validate extracted entities
- Configuration: Generate valid config files
- Integration: Prepare data for downstream systems