JSON ↔ KDL

Client

Prefer YAML when you already store configs as YAML maps, or TOML when that matches your toolchain—KDL is best when ecosystems expect its node/argument grammar.

Learn more: KDL vs YAML / TOML

Convert KDL documents to the JSON array shape produced by kdljs, and serialize that shape back to KDL—all client-side.

JSON shape requirement

When going JSON → KDL, the JSON root must be an array of objects with at least a `name` field and optional `values`, `properties`, and `children`. Use KDL → JSON first to copy a valid template from your own file.

Why not edit arbitrary JSON here?

KDL is structured as nodes, not free-form maps. Arbitrary JSON objects do not have a single canonical KDL encoding—this tool stays strict to avoid silent data loss.

JSON & KDL

?

KDL is a humane configuration language with nodes, arguments, and properties. This page uses kdljs to parse and serialize—compare with YAML or TOML converters when those formats match your toolchain better.

Sample KDL is on the right—use KDL → JSON for a node tree. JSON → KDL needs a JSON array shaped like that output.

Common use cases

  • Inspect a Cargo-style or documentation KDL sample as JSON for quick scripting.
  • Round-trip through JSON to normalize spacing after hand edits.
  • Share dual-panel state with agents using `kdl` / `kdlb` and `json` / `jsonb` query keys.

Common mistakes to avoid

  • Pasting arbitrary JSON objects at the root

    JSON → KDL requires a JSON array whose items look like kdljs nodes (name, values, properties, children). Start from KDL → JSON to see the shape.

  • Expecting YAML or JSON5 inside KDL panels

    This route only understands KDL on the right—use the YAML or JSON5 converters for those dialects.

FAQ

Is data uploaded?

No. Parsing and formatting stay in your browser tab.

Common search terms

Phrases people search for that match this tool. See the full long-tail keyword index.

  • kdl to json converter online
  • json to kdl browser
  • convert kdl document to json

Related utilities you can open in another tab—mostly client-side.