Crate egui_json_tree

source ·
Expand description

An interactive JSON tree visualiser for egui, with search and highlight functionality.

use egui::{Color32};
use egui_json_tree::{DefaultExpand, JsonTree, JsonTreeStyle};

let value = serde_json::json!({ "foo": "bar", "fizz": [1, 2, 3]});

// Simple:
JsonTree::new("simple-tree", &value).show(ui);

// Customised:
let response = JsonTree::new("customised-tree", &value)
    .style(JsonTreeStyle {
        bool_color: Color32::YELLOW,
        ..Default::default()
    })
    .default_expand(DefaultExpand::All)
    .response_callback(|response, json_pointer_string| {
      // Handle interactions within the JsonTree.
    })
    .abbreviate_root(true) // Show {...} when the root object is collapsed.
    .show(ui);

// Reset the expanded state of all arrays/objects to respect the `default_expand` setting.
response.reset_expanded(ui);

JsonTree can visualise any type that implements ToJsonTreeValue. Implementations to support serde_json::Value (enabled by default by the crate feature serde_json) and simd_json::owned::Value (optionally enabled by the crate feature simd_json) are provided with this crate. If you wish to use a different JSON type, see the value module, and disable default features in your Cargo.toml if you do not need the serde_json dependency.

Modules§

  • Representation of JSON values for presentation purposes.

Structs§

Enums§