The getSchemaByPath
function is designed to navigate through a JSON Schema and retrieve the schema definition at a specified path. This utility is particularly useful in applications that need to validate or process nested structures within a JSON object based on its schema.
Json
: Represents any valid JSON value.JsonType
: Enumerates the possible JSON types.JsonSchemaType
: Extends JsonType
with an additional 'integer' type for more precise schema definitions.JsonSchema
: Represents a JSON Schema with various properties that define validation rules.schema
: The root JSON Schema object from which the path traversal begins.path
: A string or array of strings representing the path to traverse within the JSON Schema. Paths are dot-separated for string input.JsonSchema
object located at the specified path within the input schema.undefined
is returned.When navigating an object schema, getSchemaByPath
follows the properties
, patternProperties
, additionalProperties
, and unevaluatedProperties
keys to find the nested schema.
For example:
user.name
, it will attempt to find the schema for the name
property within the user
object.name
matches a pattern in patternProperties
, that schema will be returned.For array schemas, the function handles both indexed and unindexed items:
items
array.items
is a single schema object, additionalItems
schema is considered.In this example, getSchemaByPath
retrieves the schema for the name
property within the user
object, returning { type: "string" }
.
The getSchemaByPath
function is a powerful tool for dynamically accessing nested schemas within a larger JSON Schema structure, enabling developers to implement complex validation and processing logic based on schema definitions.