Cole JSON para explorar valores aninhados mantendo o original visível. A entrada XML também é convertida pelas regras de mapeamento da ferramenta.
Funciona localmente no seu navegadorO documento que você cola à esquerda é analisado enquanto você digita e desenhado à direita como uma árvore colorida: chaves, textos, números, true/false e null têm cada um a sua cor, e todo objeto ou array traz um marcador que o recolhe para Object{…} ou Array[n]. Não há botão de executar: os dois painéis acompanham a edição.
Tudo roda na aba: o texto é analisado e desenhado por JavaScript no navegador e nenhuma requisição o transporta. Texto que começa com < e termina com > é tratado como XML e convertido antes.
A árvore é montada a partir do documento analisado, não do texto: as chaves mantêm a ordem do documento e os valores ganham cor por tipo. Recolher troca um ramo pelo seu marcador, e o marcador de um array também mostra quantos elementos ele tem.
Strings que são um único endereço http:// ou https:// sem espaços viram links. Marcação dentro de uma chave ou de uma string é impressa como texto em vez de interpretada, então um documento não consegue injetar elementos na página.
O analisador é JSON estrito: comentários, vírgulas finais, chaves entre aspas simples, NaN e números com zero à esquerda são recusados. Um documento recusado é informado com o número da linha, um trecho com um cursor sob a posição e o token que o analisador esperava.
Chaves duplicadas ficam com o último valor. Números são lidos como números de JavaScript, e isso aparece nos extremos: dígitos além dos 15–16 dígitos significativos de um double são arredondados (12345678901234567890 aparece como 12345678901234567000), 1e21 aparece como 1e+21, e um valor fora do alcance de um double, como 1e400, aparece como Infinity na árvore e como null na visão compacta, porque essa visão é a saída de JSON.stringify.
O XML é convertido com as convenções da própria ferramenta: atributos viram chaves @nome, elementos irmãos repetidos viram arrays, CDATA vira texto e a declaração e os comentários são descartados. Um elemento que tem texto e elementos filhos mantém os filhos e coloca o texto ao redor em uma chave #text.
A visão XML escreve o documento atual de volta como XML. Texto e valores de atributo são escapados, nomes que o XML não aceita viram nomes legais (espaço ou dígito inicial viram sublinhado) e uma chave #text é escrita como texto, não como tag. O resultado é texto somente leitura, que você pode selecionar e copiar.
A página não impõe limite de tamanho, mas a árvore é marcação de verdade, então documentos muito grandes pesam: uma amostra de 1,1 MB gerou cerca de 25 MB de marcação e levou quase um segundo. Alguns milhares de linhas continuam respondendo bem: redesenhar um documento de 300 linhas a cada tecla levou de 6 a 15 ms no Chrome depois da primeira passada.
Nada é guardado: ao recarregar, volta a amostra da caixa da esquerda, e Limpar esvazia os dois painéis.