JSON Path Transformer V2
Descubra mais sobre o componente JSON Path Transformer V2 e saiba como usá-lo na Digibee Integration Platform.
Atualizado
Isto foi útil?
Descubra mais sobre o componente JSON Path Transformer V2 e saiba como usá-lo na Digibee Integration Platform.
Atualizado
Isto foi útil?
O componente JSON Path Transformer V2 tem a função de receber qualquer entrada válida em JSON e realizar filtros e extrações de dados a partir de uma expressão. Esta versão do componente também suporta expressões Double Braces.
JSONPath é uma linguagem de consulta para JSON com recursos semelhantes ao XPath. Essa expressão é normalmente utilizada para selecionar e extrair os valores de propriedade de um objeto JSON. Leia mais na.
Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por estão marcados com (DB)
.
JSON Path (DB)
Serve para indicar qual expressão será utilizada no momento do processamento do JSON. É um parâmetro obrigatório e deve ser configurado de acordo com o que você deseja processar. Uma expressão Double Braces pode ser utilizada para obter o valor JSON Path dinamicamente da entrada.
$.store.books[?(@.title=='IT')]
String
Fail On Error
Se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".
False
Booleano
Conheça as demais opções para a declaração JSONPath:
$: raiz do objeto ou vetor.
.property: seleciona uma propriedade específica no objeto relacionado.
['property']: seleciona uma propriedade específica no objeto relacionado. Coloque apenas aspas simples ao redor do nome da propriedade. Dica: considere essa instrução caso o nome da propriedade contenha caracteres especiais, assim como espaços, ou caso comece com caracteres diferentes de A..Za..z_.
[n]: seleciona o elemento n de um vetor. Os índices começam com 0.
[index1,index2,…]: seleciona elementos do vetor com índices específicos e retorna uma lista.
..property: recursiva descendente. Busca um nome de propriedade de maneira decrescente e retorna um vetor de todos os valores com esse nome de propriedade. Sempre retorna uma lista, mesmo que apenas 1 propriedade seja encontrada.
: o coringa seleciona todos os elementos em um objeto ou vetor, qualquer que sejam os seus nomes ou índices. Por exemplo, “endereço.” significa todas as propriedades do objeto endereço, enquanto “livro[*]” significa todos os itens de um vetor de livro.
[input:output] / [input:]: seleciona elementos de um vetor de entrada e até, porém não necessariamente, um vetor de saída. Se a saída é omitida, selecione todos os vetores até o final do vetor. Uma lista é retornada.
[:n]: seleciona os primeiros n elementos do vetor. Uma lista é retornada.
[-n:]: seleciona os últimos n elementos do vetor. Uma lista é retornada.
[?(expression)]: expressão de filtro. Seleciona todos os elementos em um objeto ou vetor que coincidem com o filtro especificado. Uma lista é retornada.
[(expression)]: expressões de script podem ser utilizadas no lugar de nomes explícitos de propriedades ou índices. Por exemplo, [(@.tamanho-1)], que seleciona o último item de um vetor. Aqui, tamanho se refere ao tamanho do vetor em questão mais do que um arquivo JSON nomeado "tamanho".
@: utilizado em expressões de filtro para fazer referência ao nó atual que está sendo processado.
==: igual a .1 e '1' são considerados o mesmo resultado. Valores de string devem ser anexados em aspas simples (e não em aspas): [?(@.cor=='vermelho')].
!=: diferente de. Valores de string devem ser anexados em aspas simples.
>: maior que.
>=: maior ou igual a.
<: menor que.
<=: menor ou igual a.
=~: compatível com uma RedEx Java Script regular. Por exemplo, [?(@.descricao =~ /gato.*/i)] casa itens cuja descrição começa com gato (ignora maiúsculas e minúsculas).
!: utilizado para negar um filtro. Por exemplo, [?(!@.isbn)] casa itens que não possuem a propriedade isbn.
&&: operador lógico E. Exemplo: [?(@.categoria=='ficcao' && @.preco < 10)]
||: operador lógico OU. Exemplo: [?(@.categoria=='ficcao' || @.preco < 10)]
Para demonstrar a funcionalidade desse componente, você precisa configurar um JSON de entrada em um pipeline com o JSON Path Transformer V2. Após adicioná-lo ao pipeline, é preciso configurar a expressão JSONPath como $.address..[?(@.postalCode == '02375')].streetAddress ou o exemplo não vai funcionar.
A intenção deste exemplo é filtrar os endereços de entrada por apenas um único código postal e retornar apenas a rua do endereço. Veja:
A estrutura será o JSON filtrado pela especificação JSONPath.
Veja abaixo como o componente se comporta em determinadas situações e a sua respectiva configuração em cada caso.
Neste exemplo, você verá apenas os autores de um array com livros dentro de uma loja. A configuração de expressão do componente deve ser $..author.
Entrada
Saída
Neste exemplo, você verá apenas os produtos de um array com preço menor que R$3.300,00. A configuração de expressão do componente deve ser $..[?(@.price<3300)].
Entrada
Saída
Com este exemplo você pode configurar o componente com Fail On Error como “false” e utilizar a expressão $.
Com essas configurações, o resultado será uma mensagem de erro e com a propriedade "success": false
.
Entrada
Saída
Com este exemplo você pode configurar o componente com Fail On Error como “true” e utilizar a expressão $.
Com essas configurações, o resultado será uma mensagem de erro e a execução será interrompida imediatamente.
Entrada
Saída
Neste exemplo, somente os resultados de erro são extraídos de um array de execuções. A configuração da expressão do componente deve ser $..[?(@.error)]
.
Neste exemplo, o JSON Path é obtido dinamicamente da entrada usando uma expressão Double Braces. A configuração da expressão do componente deve ser {{ message.jsonPath }}
.