JSON Path Selector

A hierarchical combobox for selecting property paths within JSON objects.

Attributes
PropTypeDefault
dataJsonObjectRequired
selectedValuestring[] | nullundefined (controlled)
defaultSelectedValuestring[] | nullnull (uncontrolled)
onSelectionChange(selectedKeys: string[] | null) => void
placeholderstring'Select an attribute'
labelstring'Attributes'
disabledbooleanfalse
align'start' | 'center' | 'end''start'
emptyMessagestring'No data to display'
notFoundMessagestring'No attributes found'
selectedPathFooterbooleantrue

A simple selector with a flat object structure.

Attributes

The component automatically handles nested objects, displaying them as expandable/collapsible tree nodes. It also supports complex property names with spaces, dots, and URNs.

Attributes

While schemas (with type strings like 'string', 'number', etc.) are the recommended format for defining attribute structures, the component also works with real data values. This can be useful when you want to display actual data from your application.

Attributes

When no data is available (null, undefined, or empty object), the JsonPathSelector displays an empty state message. When data exists but search returns no results, it shows a not found message. You can customize both messages using the emptyMessage and notFoundMessage props.

Attributes
Attributes
Attributes

Disable the selector to prevent user interaction.

Attributes
Attributes

This example stress tests the component with deeply nested data (5+ levels), many items at each level, and varying text lengths to demonstrate how it handles complex real-world scenarios.

Attributes

The JsonPathSelector can be used as either a controlled or uncontrolled component.

Controlled
Attributes
UncontrolledAttributes

Multiple selectors can be arranged in a grid layout for attribute mapping scenarios.

Attribute name
IdP field name
firstNameRequired
Attributes
lastNameRequired
Attributes
emailRequired
Attributes
department
Attributes
jobTitle
Attributes

A comprehensive example showing multiple selectors in a Dialog with react-hook-form integration, scrollable body, and fixed header.