PBToolboxAI v3 ← Site

jsontree — u_pbt_jsontree #

← Referência dos componentes · Índice do guia

jsontree mostra um valor JSON como uma árvore recolhível, colorida por tipo: um ecrã de configuração, uma resposta de API, uma depuração de integração. Define o texto JSON em is_json, o componente mostra-o; um clique num nó reporta o seu caminho (ue_node_clicked), um JSON inválido levanta ue_error. Não modifica nada: é um VISUALIZADOR.

▶ Ver ao vivo — Aplicação de demonstração, mosaico JSON tree, com o código e esta página lado a lado.


Em resumo #

Userobjectu_pbt_jsontree
EntradaO texto JSON, em is_json (uma cadeia)
Dobrar / desdobrarCada contentor pelo seu chevron, ou tudo de uma vez (of_expand_all, of_collapse_all)
RetornoUm clique num nó dá o seu caminho (ue_node_clicked); um JSON inválido levanta ue_error

Início rápido #

// 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

Propriedades #

PropriedadeTipoPredefinidoDescrição
is_jsonstring""O texto JSON a mostrar. Um objeto, um array, um valor; lido e mostrado como árvore. Vazio limpa a árvore; um JSON inválido levanta ue_error e não mostra nada
ib_wrapbooleantrueAs linhas longas quebram (true, por omissão) ou ficam numa linha com barra horizontal (false) — um aspeto de editor de código
ib_search_enabledbooleantrueCtrl+F na árvore abre uma caixa de pesquisa — a mesma pesquisa que of_search: escrever realça, Enter seguinte, Shift+Enter anterior, Esc fecha. false deixa o atalho a uma aplicação que pesquisa a partir da sua própria caixa
is_theme_stylestringfluentEstilo visual do componente (constantes THEME_STYLE_*)
is_theme_modestringlightVariante clara ou escura (constantes THEME_MODE_*)
il_theme_accentlong-1Cor de destaque deste componente (-1 = destaque do tema)
is_tooltipstring""Tooltip simples apresentado ao passar sobre o componente
is_super_tooltip_titlestring""Título do tooltip enriquecido (prevalece sobre is_tooltip)
is_super_tooltip_textstring""Texto do tooltip enriquecido (aceita marcação enriquecida)
is_super_tooltip_imagestring""Imagem do tooltip enriquecido

Métodos #

MétodoDescrição
of_expand_all ( ) → longDesdobra cada contentor. Devolve 0, -1 se o componente não estiver criado
of_collapse_all ( ) → longDobra cada contentor aninhado (o nível de topo fica visível). Devolve 0, -1 se o componente não estiver criado
of_clear ( ) → longEsvazia a árvore (como is_json = ""). Devolve 0, -1 se o componente não estiver criado
of_expand_to_level ( long al_level ) → longMostra a árvore até al_level: os blocos a essa profundidade ou mais dobram (1 = os filhos diretos do bloco raiz, 0 dobra a raiz)
of_search ( string as_query ) → longRealça cada ocorrência (sem distinção de maiúsculas) e salta para a primeira, abrindo qualquer antepassado dobrado; ue_search_result diz quantas. Uma consulta vazia limpa a pesquisa. A caixa de pesquisa abre-se com a consulta dentro e o foco nela (a mesma que Ctrl+F): Enter passa à seguinte; com ib_search_enabled a false a árvore apenas realça
of_search_next ( ) → longPassa à correspondência SEGUINTE (volta à primeira depois da última); ue_search_result indica a nova posição
of_search_prev ( ) → longPassa à correspondência ANTERIOR (volta à última antes da primeira); ue_search_result indica a nova posição
of_clear_search ( ) → longDescarta a pesquisa: sem realces nem correspondência atual (of_match_count devolve 0), e a caixa de pesquisa esvazia-se e fecha-se
of_select_path ( string as_path ) → longSeleciona e rola até à linha em as_path SEM levantar um evento (a app conduziu-o)
of_selected_path ( ) → stringO caminho de acesso da linha selecionada, lido AO VIVO (b.c, d[0]) — o que um botão Copiar copia. Vazio se nada estiver selecionado
of_selected_value ( ) → stringO valor JSON da linha selecionada quando é uma FOLHA (uma string mantém as aspas, pronta a colar), lido AO VIVO. Vazio para um contentor ou sem seleção
of_match_count ( ) → longDevolve quantas correspondências a pesquisa atual encontrou, lido AO VIVO — o 12 de uma barra de estado 3 / 12. 0 sem pesquisa
of_match_index ( ) → longDevolve a posição (1-based) da correspondência atual, lida AO VIVO — o 3 de uma barra de estado 3 / 12. 0 sem correspondência

Eventos #

EventoQuando
ue_node_clicked (string as_path)O utilizador clicou num nó: o seu caminho de acesso com pontos (lines.0.sku), a reler nos seus dados
ue_selection_changed (string as_path)A linha selecionada mudou por TECLADO (setas, Início/Fim) — um clique do rato reporta ue_node_clicked
ue_search_result (long al_count, long al_index)Uma pesquisa correu ou avançou: al_count correspondências no total, a atual é al_index (1-based, 0 se nenhuma) — para um « 3 / 12 »
ue_error (string as_message)O texto em is_json não é um JSON válido: a mensagem diz porquê, a árvore fica vazia

Exemplo #

Explorar a resposta de uma API #

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

Boas práticas #


Herdado da base comum #

Estes membros existem em todos os componentes visuais — não são próprios deste. São detalhados uma só vez, nos capítulos transversais; esta tabela apenas diz onde os ler.

MembrosFunçãoDetalhado em
of_resetRepor o componente a zero3.6 Repor um componente a zero: of_reset()
of_register_shortcut · of_clear_shortcutsAtalhos de teclado do componente3.5 Os atalhos de teclado
of_is_created · of_is_ready · of_get_last_errorSe nasceu, se está pronto, o que falhou3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar a renderização como imagem3.8 Exportar a representação como imagem
of_set_redrawAgrupar as alterações num único repinte3.10 Boas práticas
of_preload_iconsÍcones mostrados sem atrasoApresentação instantânea: of_icon
of_set_translationTraduzir uma legenda do componente5.2 Adaptar uma etiqueta: of_set_translation
of_focus_webviewDar o foco ao componente6.4 Teclado e focus
of_print · of_print_to_pdfImprimir, ou escrever um PDF6.9 Imprimir
of_set_property · of_get_property · of_component_nameControlar uma propriedade pelo nome3.1 O motor de propriedades

← Referência dos componentes · Índice do guia