jsonPath
jsonpath implementa o suporte para a linguagem de caminho SQL/JSON no PostgreSQL para consultar dados JSON. Fornece uma representação binária da expressão de caminho SQL/JSON analisada que especifica os itens que devem ser recuperados pelo mecanismo de caminho a partir dos dados JSON para processamento posterior com as funções de consulta SQL/JSON. A semântica dos predicados e operadores de caminho SQL/JSON geralmente segue o SQL. A sintaxe do caminho SQL/JSON usa algumas das convenções JavaScript:- Um ponto (
.) é usado para acesso de membros. - Os colchetes (
[]) são usados para acessar a matriz. - As matrizes SQL/JSON são relativas a 0 (ao contrário das matrizes SQL comuns que começam em 1).
- Eles devem estar entre aspas duplas.
- Escapes de barra invertida podem ser usados dentro deles para representar caracteres que, de outra forma, seriam difíceis de digitar.
\". Para obter uma barra invertida, você deve digitar ' \\.- Para vários caracteres de controle ASCII
\b\f\n\r\t\v
- Para um caractere Unicode identificado por seu ponto de código de 4 dígitos hexadecimais
\uNNNN
- Para um código de caractere escrito com apenas dois dígitos hexadecimais
\xNN
- Para um código de caractere escrito com 1 a 6 dígitos hexadecimais
\u{N...}
- Literais de caminho de tipos primitivos JSON: Texto Unicode, numérico, verdadeiro, falso ou nulo.
- Variáveis de caminho.
- Operadores de acessório.
- operadores e métodos
jsonpath, que você pode usar para fornecer expressões de filtro ou definir a ordem de avaliação do caminho.
variáveis jsonpath
- $
- Uma variável que representa o texto JSON a ser consultado (o item de contexto).
- $nome_da_variável
- Uma variável nomeada. Você pode definir o valor pelo parâmetro '
varsde várias funções de processamento de JSON. - @
- Uma variável que representa o resultado da avaliação do caminho em expressões de filtro.
acessores jsonpath
- .chave
- ."$nome_variável"
- Um acessor de membro que retorna um membro de objeto com a chave especificada. Se o nome da chave for uma variável nomeada que começa com $ ou não atender às regras JavaScript de um identificador, ele deverá ser colocado entre aspas duplas como um literal de cadeia de caracteres.
- .*
- Um acessor de membro curinga que retorna os valores de todos os membros localizados no nível superior do objeto atual.
- .**
- Um acessor de membro curinga recursivo que processa todos os níveis da hierarquia JSON do objeto atual e retorna todos os valores de membro, independentemente do nível de aninhamento. Essa é uma extensão do PostgreSQL do padrão SQL/JSON.
- .**{level}
- .**{start_level to end_level}
- Igual a .**, mas com um filtro sobre os níveis de aninhamento da hierarquia JSON. Os níveis de aninhamento são especificados como números inteiros. O nível zero corresponde ao objeto atual. Para acessar o nível de aninhamento mais baixo, você pode usar a palavra-chave last. Essa é uma extensão do PostgreSQL do padrão SQL/JSON.
- [subscrito, ...]
- Um acessor de elemento de matriz.
subscriptpode ser fornecido de duas formas: "indexou "start_indexa "end_index. O primeiro formulário retorna um único elemento da matriz pelo seu índice. O segundo formulário retorna uma matriz dividida pelo intervalo de índices, incluindo os elementos que correspondem ao 'start_indexe ao 'end_indexfornecidos. - [*]
- Um acessor de elemento de matriz curinga que retorna todos os elementos da matriz.
A linguagem de caminho SQL/JSON
Da mesma forma que as expressões ' XPath que são usadas para o acesso ' SQL ao XML, as expressões de caminho ' SQL'/JSON especificam quais itens devem ser recuperados dos dados ' JSON.
No PostgreSQL, as expressões de caminho são implementadas como o tipo de dados ' jsonpath. Eles podem usar qualquer elemento descrito em jsonpath.
as funções e operadores de consulta JSON passam a expressão de caminho fornecida para o mecanismo de caminho para avaliação. Se a expressão corresponder aos dados JSON consultados, o item SQL/JSON correspondente será retornado.
As expressões de caminho são escritas na linguagem de caminho SQL/JSON. Elas podem incluir expressões aritméticas e funções. A expressão fornecida deve ser colocada entre aspas simples, pois as funções de consulta tratam essa expressão como uma cadeia de texto.
Uma expressão de caminho é composta de uma sequência de elementos que são permitidos por ' jsonpath. A expressão do caminho é avaliada da esquerda para a direita. Você pode usar parênteses para alterar a ordem das operações. Se a avaliação for bem-sucedida, será produzida uma sequência SQL/JSON. O resultado da avaliação é retornado para a função de consulta JSON que conclui o cálculo especificado.
Para fazer referência ao item de contexto (dados JSON a serem consultados), você pode usar o sinal " $ na expressão de caminho. Você pode seguir o sinal com um ou mais acessores jsonpath. Eles descem a estrutura JSON nível por nível para recuperar o conteúdo do item de contexto. Cada operador que se segue lida com o resultado da etapa de avaliação anterior.
Para obter mais informações sobre os operadores e métodos ' jsonpath, consulte jsonpath