Resumo

  • O RFC 9535 define a avaliação de uma consulta JSONPath contra um valor JSON concreto e o retorno de uma lista com zero ou mais nós. Cada nó tem um único Caminho Normalizado naquele valor.
  • $['approvals'][3] pode apontar exatamente para a quarta aprovação agora e para outra depois que um item for inserido antes. Posição única não é identidade duradoura.
  • Lista vazia, JSON null, seleção duplicada e índice fora da faixa são estados diferentes. Uma decisão precisa guardar entrada, consulta, implementação, resultado e política.

Um endereço não vira identidade só porque foi escrito sem ambiguidade.

Às 9h, $['approvals'][3] encontra a aprovação de uma pessoa. Às 9h05, uma solicitação antiga é inserida no começo do array. A consulta não mudou, continua válida e ainda devolve um nó, mas o ocupante da posição mudou. Se o sistema reteve apenas o caminho, já não consegue provar o que avaliou às 9h.

Publicado na trilha de padrões do IETF em fevereiro de 2024, o RFC 9535 delimita o mecanismo. JSONPath executa uma consulta sobre um valor JSON — o argumento da consulta — e produz uma lista de nós. Cada nó combina valor e localização naquela entrada. A norma torna a seleção interoperável; não autentica o documento nem atribui significado de negócio ao campo.

A forma canônica congela uma coordenada

O Caminho Normalizado usa colchetes e escapes canônicos para identificar exatamente um nó. Há um único caminho para cada nó de um valor. Isso serve bem a testes, comparação, pós-processamento e remoção explícita de duplicatas.

A restrição está em “um valor”. O caminho não contém hash, versão, origem, esquema ou ID estável. Até um índice negativo depende do tamanho do array concreto: a normalização registra a posição não negativa resolvida. Mude o tamanho e a associação lógica pode desaparecer.

O JSON Pointer do RFC 6901 também localiza valores em uma estrutura conhecida, e o RFC 9535 permite converter um caminho normalizado em pointer. A troca de notação não cria continuidade histórica.

Vazio, nulo e falha não são sinônimos

Uma lista vazia é resultado válido. Um índice fora da faixa apenas seleciona menos nós, e os segmentos seguintes permanecem vazios. Isso difere de sintaxe inválida, timeout, limite de recursos ou rejeição do parser.

Também difere de JSON null: null é um valor presente; membro ausente não gera nó. Uma regra de acesso que reduza ambos ao mesmo falso pode usar um mecanismo correto para chegar a uma política errada.

Seleções repetidas preservam duplicatas. count() conta nós, não valores, caminhos ou entidades únicas. Quando mais de uma ordem é permitida, execuções sucessivas podem devolver ordens diferentes e conformes. “Escolha o primeiro” é regra do aplicativo, salvo se outro contrato definir a ordem.

Interoperabilidade não produz autoridade

O RFC 8259 define JSON e alerta para nomes de membro repetidos; o RFC 7493 reduz ambiguidades com I-JSON. O RFC 9485 dá perfil comum às expressões de match() e search(). O registro JSONPath da IANA mantém extensões, e application/jsonpath identifica documentos de consulta.

Esses acordos ajudam sistemas a selecionar os mesmos nós. Não provam que owner seja proprietário legal, que o dado esteja atual ou que a fonte seja autorizada. O RFC 9537 mostra a fronteira: JSONPath localiza um campo removido em uma resposta RDAP, mas não revela o valor oculto nem valida a política da remoção.

A segurança começa antes do cifrão

O RFC 9535 adverte contra passar fragmentos ao eval da linguagem hospedeira. Nomes, índices e comparações interpolados exigem validação e escape. Uma descida recursiva ingênua também pode consumir CPU em excesso ou estourar a pilha. Sintaxe correta precisa de execução limitada e falha explícita.

O UTF-8 do RFC 3629 e as considerações do modelo do RFC 8949 ajudam na representação, não na procedência. A cadeia completa liga bytes de origem, valor analisado, consulta, implementação e extensões, lista de nós, interpretação e decisão.

Um recibo capaz de reproduzir a decisão

Para acesso, conformidade, política de roteamento ou incidente, guarde entrada ou hash e procedência; parser e tratamento de nomes duplicados; consulta exata e tipo de mídia; variáveis antes e depois da validação; implementação, versão e extensões; limites de tempo e recursos; caminhos normalizados e valores permitidos; deduplicação e ordenação posteriores; esquema, política, ator, horário e resultado.

Isso sustenta a frase: X avaliou Q sobre o hash H sob limites L e devolveu estes locais. Afirmar que é o mesmo registro de ontem exige um ID estável no esquema e evidência entre versões.

Fontes e limites

O registro oficial inclui HTML, texto, página informativa, Datatracker, histórico e busca de erratas. O repositório do grupo registra a elaboração, e a comparação JSONPath mostra o contexto anterior.

Também foram usados os RFCs 8259, 7493, 9485, 6901, 8949, 3629 e 9537, além do registro IANA e do tipo de mídia. A análise de governança segue Heng Lu sobre camadas de realidade, especificação inicial mínima e primazia do código em execução.

Nenhuma implementação, organização, invasão ou falha específica foi auditada. O texto não atribui defeito ao RFC 9535 nem uso indevido a uma entidade.