PBToolboxAI v3 ← Site

jsontree — u_pbt_jsontree #

← Komponentenreferenz · Inhalt des Handbuchs

jsontree zeigt einen JSON-Wert als einklappbaren Baum, nach Typ gefärbt: ein Konfigurationsbildschirm, eine API-Antwort, ein Integrations-Debug. Sie setzen den JSON-Text in is_json, die Komponente zeigt ihn; ein Klick auf einen Knoten meldet seinen Pfad (ue_node_clicked), ungültiges JSON löst ue_error aus. Sie ändert nichts: sie ist ein BETRACHTER.

▶ Live sehen — Demoanwendung, Kachel JSON tree, mit dem Code und dieser Seite nebeneinander.


Auf einen Blick #

Userobjectu_pbt_jsontree
EingabeDer JSON-Text, in is_json (eine Zeichenkette)
Ein-/AusklappenJeder Container über seinen Pfeil, oder alle auf einmal (of_expand_all, of_collapse_all)
RückmeldungEin Klick auf einen Knoten gibt seinen Pfad (ue_node_clicked); ungültiges JSON löst ue_error aus

Schnellstart #

// Show an API response as a tree
uo_json.is_json = inv_rest.of_response_text()

// Fold everything, then let the user open what interests them
uo_json.of_collapse_all()

// ue_node_clicked : the dotted path of the node clicked ("lines.0.sku")
// -> read it in your own data with what the path names

Eigenschaften #

EigenschaftTypStandardBeschreibung
is_jsonstring""Der anzuzeigende JSON-Text. Ein Objekt, ein Array, ein Wert; als Baum gelesen und gezeigt. Leer löscht den Baum; ungültiges JSON löst ue_error aus und zeigt nichts
ib_wrapbooleantrueLange Zeilen brechen um (true, Standard) oder bleiben mit horizontaler Bildlaufleiste auf einer Zeile (false) — ein Code-Editor-Gefühl
ib_search_enabledbooleantrueStrg+F im Baum öffnet ein Suchfeld — dieselbe Suche wie of_search: Tippen hebt hervor, Enter nächster, Umschalt+Enter vorheriger, Esc schließt. false überlässt das Kürzel einer Anwendung, die aus ihrem eigenen Feld sucht
is_theme_stylestringfluentVisueller Stil der Komponente (Konstanten THEME_STYLE_*)
is_theme_modestringlightHelle oder dunkle Variante (Konstanten THEME_MODE_*)
il_theme_accentlong-1Akzentfarbe dieser Komponente (-1 = Akzent des Designs)
is_tooltipstring""Einfacher Tooltip beim Überfahren der Komponente
is_super_tooltip_titlestring""Titel des erweiterten Tooltips (hat Vorrang vor is_tooltip)
is_super_tooltip_textstring""Text des erweiterten Tooltips (Rich-Markup zulässig)
is_super_tooltip_imagestring""Bild des erweiterten Tooltips

Methoden #

MethodeBeschreibung
of_expand_all ( ) → longKlappt jeden Container auf. Gibt 0 zurück, -1 wenn die Komponente nicht erzeugt ist
of_collapse_all ( ) → longKlappt jeden verschachtelten Container ein (die oberste Ebene bleibt sichtbar). Gibt 0 zurück, -1 wenn die Komponente nicht erzeugt ist
of_clear ( ) → longLeert den Baum (wie is_json = ""). Gibt 0 zurück, -1 wenn die Komponente nicht erzeugt ist
of_expand_to_level ( long al_level ) → longZeigt den Baum bis al_level: Blöcke in dieser Tiefe oder tiefer klappen zu (1 = die direkten Kinder des obersten Blocks, 0 klappt die Wurzel)
of_search ( string as_query ) → longHebt jedes Vorkommen hervor (ohne Groß/Klein) und springt zum ersten, öffnet jeden eingeklappten Vorfahren; ue_search_result sagt wie viele. Eine leere Anfrage löscht die Suche. Das Suchfeld öffnet sich mit der Anfrage darin und dem Fokus darauf (dasselbe wie Strg+F): Eingabe springt zum nächsten Treffer; mit ib_search_enabled auf false hebt der Baum nur hervor
of_search_next ( ) → longSpringt zum NÄCHSTEN Treffer (nach dem letzten wieder zum ersten); ue_search_result meldet die neue Position
of_search_prev ( ) → longSpringt zum VORHERIGEN Treffer (vor dem ersten wieder zum letzten); ue_search_result meldet die neue Position
of_clear_search ( ) → longVerwirft die Suche: keine Hervorhebung und kein aktueller Treffer mehr (of_match_count liefert 0), das Suchfeld wird geleert und geschlossen
of_select_path ( string as_path ) → longWählt die Zeile bei as_path und scrollt hin, OHNE ein Ereignis auszulösen (die App hat es gesteuert)
of_selected_path ( ) → stringDer Zugriffspfad der gewählten Zeile, LIVE gelesen (b.c, d[0]) — was ein Kopieren-Knopf kopiert. Leer, wenn nichts gewählt ist
of_selected_value ( ) → stringDer JSON-Wert der gewählten Zeile, wenn sie ein BLATT ist (ein String behält seine Anführungszeichen, bereit zum Einfügen), LIVE gelesen. Leer bei einem Container oder ohne Auswahl
of_match_count ( ) → longLiefert, wie viele Treffer die aktuelle Suche fand, LIVE gelesen — die 12 einer Statuszeile 3 / 12. 0 ohne Suche
of_match_index ( ) → longLiefert die 1-basierte Position des aktuellen Treffers, LIVE gelesen — die 3 einer Statuszeile 3 / 12. 0 ohne Treffer

Ereignisse #

EreignisWann
ue_node_clicked (string as_path)Der Benutzer hat einen Knoten angeklickt: sein punktierter Zugriffspfad (lines.0.sku), in Ihren Daten nachzulesen
ue_selection_changed (string as_path)Die gewählte Zeile hat sich per TASTATUR geändert (Pfeile, Pos1/Ende) — ein Mausklick meldet ue_node_clicked
ue_search_result (long al_count, long al_index)Eine Suche lief oder bewegte sich: al_count Treffer insgesamt, der aktuelle ist al_index (1-basiert, 0 wenn keiner) — für eine Anzeige „3 / 12“
ue_error (string as_message)Der Text in is_json ist kein gültiges JSON: die Meldung sagt warum, der Baum bleibt leer

Beispiel #

Eine API-Antwort erkunden #

if inv_rest.of_get("https://api.example.com/orders/4152") = 200 then
	uo_json.is_json = inv_rest.of_response_text()
	uo_json.of_collapse_all()          // the reader opens what interests them
else
	uo_json.of_clear()
end if

Bewährte Praxis #


Vom gemeinsamen Sockel geerbt #

Diese Mitglieder gibt es bei jeder visuellen Komponente — sie sind nicht dieser eigen. Sie werden einmal in den übergreifenden Kapiteln beschrieben; diese Tabelle sagt nur, wo man sie liest.

MitgliederRolleBeschrieben in
of_resetDie Komponente zurücksetzen3.6 Eine Komponente zurücksetzen: of_reset()
of_register_shortcut · of_clear_shortcutsTastenkürzel der Komponente3.5 Tastenkombinationen
of_is_created · of_is_ready · of_get_last_errorOb sie entstanden ist, ob sie bereit ist, was fehlschlug3.7 Diagnose
of_save_as_png · of_save_as_jpgDie Darstellung als Bild exportieren3.8 Die Darstellung als Bild exportieren
of_set_redrawÄnderungen zu einem einzigen Neuzeichnen bündeln3.10 Best Practices
of_preload_iconsSymbole ohne VerzögerungSofortige Anzeige: of_icon
of_set_translationEine Beschriftung der Komponente übersetzen5.2 Eine Beschriftung anpassen: of_set_translation
of_focus_webviewDer Komponente den Fokus geben6.4 Tastatur und Fokus
of_print · of_print_to_pdfDrucken oder ein PDF schreiben6.9 Drucken
of_set_property · of_get_property · of_component_nameEine Eigenschaft über ihren Namen steuern3.1 Die Eigenschaften-Engine

← Komponentenreferenz · Inhalt des Handbuchs