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'

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

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.

Default Empty MessageAttributes
Custom Empty MessageAttributes
Custom Not Found MessageAttributes

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
Selected: employmentInformation → currentEmployment → position → department → team → location → address → coordinates → timezone

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

ControlledAttributes
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.