Expand description
PDK JSON Validator Library
Provides JSON validation functionality with configurable constraints, supporting incremental/streaming validation of JSON payloads.
- Incremental JSON validation (chunk-based streaming)
- Configurable constraints (depth, array length, object entries, string/key lengths)
- UTF-8 boundary handling for incomplete chunks
§Primary types
JsonValidator: validator for JSON chunks incrementallyValidationResult: result indicating validation statusValidationError: error type for validation failuresJsonValidatorBuilder: builder for creating validator instances
§Example
use pdk::json_validator::{JsonValidatorBuilder, ValidationResult, ValidationError};
let mut validator = JsonValidatorBuilder::new()
.with_max_depth(10)
.with_max_array_length(1000)
.with_max_string_length(10000)
.build();
// Validate first chunk
match validator.validate_chunk(b"{\"key\": \"val", false) {
Ok(ValidationResult::Incomplete) => {
// Wait for more chunks
}
Err(e) => {
eprintln!("Validation error: {}", e);
}
_ => {}
}
// Validate final chunk
match validator.validate_chunk(b"ue\"}", true) {
Ok(ValidationResult::Complete) => {
// JSON valid
}
Err(ValidationError::MaxDepthExceeded) => {
// Handle specific constraint violation
}
Err(e) => {
eprintln!("Validation error: {}", e);
}
}Structs§
- Json
Validator - JSON validator with configurable constraints.
- Json
Validator Builder - Builder for creating JSON validation instances
Enums§
- Validation
Error - Errors that can occur during JSON validation
- Validation
Result - Result of validating a JSON chunk