Nesta página

Para encontrar um valor em um JSON aninhado, você pode abrir os objetos e arrays até chegar a ele. Vamos procurar o código do segundo item de um pedido e copiar seu caminho. O exemplo também tem uma propriedade chamada pedido.itens: veremos como ela difere de itens dentro de pedido.

Encontrar o segundo item de um pedido

Copie este documento completo para o visualizador de árvore JSON:

{
  "pedido": {
    "itens": [
      {"sku": "L-10", "preco": 12},
      {"sku": "L-11", "preco": 18}
    ],
    "envio": null
  },
  "pedido.itens": {"sku": "LITERAL"},
  "itens[0]": "ETIQUETA",
  "extras": []
}

O objeto externo é a raiz do documento. Dentro de pedido, o array itens guarda os dois itens. Como os índices começam em 0, o segundo item fica no índice 1. Seu código sku é "L-11".

Objetos agrupam propriedades por nome, enquanto arrays mantêm uma sequência ordenada de valores, como explica a RFC 8259. Para revisar os tipos, consulte a introdução ao JSON.

Percorrer o caminho no visualizador

  1. Cole o documento em Entrada JSON e selecione Explorar JSON. Apenas colar não inicia a análise.
  2. A árvore mostra primeiro a raiz, cujo caminho é $. Clique no sinal + dessa linha para expandi-la e repita na propriedade pedido.
  3. Expanda itens. Aparecem os elementos de índice 0 e 1. Expanda o elemento de índice 1.
  4. Selecione a linha sku. Confira se o tipo é string e se a prévia mostra "L-11".
  5. O caminho selecionado é $.pedido.itens[1].sku. Selecione Copiar caminho selecionado para compartilhar essa localização.

Para recolher um ramo, clique no sinal −. Se preferir usar o teclado, a seta direita expande o ramo e a esquerda o recolhe.

Nesta amostra, Valores JSON mostra 14: a contagem inclui a raiz, os contêineres e os valores que contêm. Linhas visíveis começa em 1 e muda ao expandir, recolher ou trocar de página. Não representa o total de valores do documento.

Diferenciar caminhos e nomes literais

Estes percursos levam a locais diferentes dentro do mesmo exemplo:

Percurso Caminho mostrado pelo visualizador Resultado
pedido → itens → índice 1 → sku $.pedido.itens[1].sku "L-11"
Propriedade da raiz pedido.itens → sku $["pedido.itens"].sku "LITERAL"
Propriedade da raiz itens[0] $["itens[0]"] "ETIQUETA"
pedido → envio $.pedido.envio null: a propriedade existe.
pedido → desconto Não há linha nem caminho selecionável. A propriedade está ausente.
extras $.extras []: um array sem elementos.

Há vários campos sku, então copie o caminho completo ao compartilhar um deles. Observe também as três últimas linhas: envio existe e vale null, desconto não existe e extras é um array vazio. Por isso, não há um elemento extras[0] para abrir.

Interpretar e compartilhar o caminho copiado

O visualizador usa $ para a raiz, pontos para nomes simples e colchetes para índices de arrays. Nomes especiais aparecem entre colchetes como uma string entre aspas duplas. Aspas e barras invertidas dentro do nome recebem escapes como em uma string JSON:

Nome literal de uma propriedade na raiz Caminho mostrado
a.b $["a.b"]
a"b $["a\"b"]
a\b $["a\\b"]
a/b $["a/b"]

A barra / é preservada; ela não separa níveis nessa notação. Copie o caminho inteiro em vez de reconstruí-lo retirando aspas ou escapes. Se a raiz fosse o array [{"sku":"L-10"},{"sku":"L-11"}], o segundo código teria o caminho $[1].sku. Se o documento inteiro fosse null, seu caminho seria $.

O caminho copiado ajuda outra pessoa a localizar o valor no mesmo JSON. O visualizador usa uma notação própria, diferente de JSON Pointer. Se você precisar usar esse caminho em outra ferramenta, confira antes qual sintaxe ela aceita.

Se você já converteu o JSON do exemplo em um objeto JavaScript chamado dados, pode acessar os dois campos sku assim:

dados["pedido"]["itens"][1]["sku"] // "L-11"
dados["pedido.itens"]["sku"]     // "LITERAL"

O que verificar quando o valor não aparece

O que você observa O que conferir ou fazer
Você chega a "L-10" Escolheu o índice 0. O segundo item está no índice 1.
Só aparece um objeto ou array Se houver elementos, clique em +. Um ramo recolhido oculta linhas.
desconto não aparece dentro de pedido Confira o objeto correto e todas as suas páginas. Nesta amostra, essa propriedade não existe.
Você vê null ou um contêiner que indica não ter elementos filhos São valores presentes; o nulo e os contêineres vazios não têm filhos para expandir.
Faltam elementos de uma lista na tela Cada página admite até 50 linhas. Use Próxima página ou Página anterior.
Aparece um aviso de limite Leia o diagnóstico. Para o limite de 500 linhas visíveis, recolha outro ramo; para limites de entrada ou análise, reduza o documento.
O documento não pode ser analisado Confira a sintaxe com o formatador e validador JSON.

O visualizador exige JSON estrito e rejeita comentários, vírgulas finais e nomes duplicados dentro de um mesmo objeto. Repetir sku em objetos diferentes, como no exemplo, é permitido.

Para documentos grandes, leve em conta os limites do visualizador: 1.000.000 de unidades de código UTF-16, 200 níveis de aninhamento e 100.000 valores JSON. A análise também pode parar se ultrapassar o tempo ou a quantidade de trabalho permitidos para o processamento. Se isso acontecer, tente abrir uma parte menor do documento para procurar o campo desejado.

As prévias mostram até 120 unidades de código UTF-16. Se um texto aparecer cortado, consulte o JSON original para ler o valor completo.

Quando você precisa de uma consulta JSONPath

Neste exemplo, procuramos um único sku. Para obter os códigos de todos os itens de uma vez, use uma ferramenta que execute consultas JSONPath. O visualizador de árvore não executa essas consultas nem oferece busca ou edição do documento.

Compartilhar este guia

Link do artigo