JsonViewerCMP & JsonEditorCMP¶
Two separate composable entry points for viewing and editing JSON.
JsonViewerCMP¶
Read-only JSON viewer with virtualized rendering. Virtually no size limit.
@ExperimentalJsonCmpApi
@Composable
fun JsonViewerCMP(
modifier: Modifier = Modifier,
state: JsonViewerState,
searchQuery: String = "",
theme: JsonTheme = JsonTheme.Dark,
)
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
modifier |
Modifier |
Modifier |
Compose modifier for the root layout |
state |
JsonViewerState |
— | State holder created via rememberJsonViewerState() |
searchQuery |
String |
"" |
Text to highlight in the JSON content |
theme |
JsonTheme |
Dark |
Color theme for syntax highlighting |
Behavior¶
- Renders a read-only JSON tree with syntax highlighting, line numbers, and code folding
- Responds to changes in the
jsonparameter ofrememberJsonViewerState— new values trigger a re-parse
JsonEditorCMP¶
JSON editor with real-time validation, formatting, and sorting. Enforces a 50 KB write limit — content is truncated if it exceeds this threshold.
@ExperimentalJsonCmpApi
@Composable
fun JsonEditorCMP(
modifier: Modifier = Modifier,
state: JsonEditorState,
searchQuery: String = "",
theme: JsonTheme = JsonTheme.Dark,
)
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
modifier |
Modifier |
Modifier |
Compose modifier for the root layout |
state |
JsonEditorState |
— | State holder created via rememberJsonEditorState() |
searchQuery |
String |
"" |
Text to highlight in the JSON content |
theme |
JsonTheme |
Dark |
Color theme for syntax highlighting |
Behavior¶
- Renders the editor toolbar (format, sort, collapse/expand), error banner, and editable code editor
initialJsonseeds the editor once — the editor owns its text state internally- Observe changes via
state.json,state.parsedJson, andstate.error