Usando JSONPath caminhos - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando JSONPath caminhos

Gerenciando o estado e transformando dados

Na Amazon States Language um caminho é uma string que começa com $, que você pode usar para identificar componentes dentro do texto JSON. Os caminhos seguem a JsonPathsintaxe, que só está disponível quando definida como. QueryLanguage JSONPath É possível especificar um caminho para acessar os subconjuntos de entrada definindo valores para InputPath, ResultPath e OutputPath.

Você deve usar a notação de colchetes se o nome do campo contiver algum caractere que não esteja incluído na member-name-shorthand definição da regra JsonPath ABNF. Portanto, para codificar caracteres especiais, como sinais de pontuação (excluindo _), você deve usar a notação de colchetes. Por exemplo, $.abc.['def ghi'].

Caminhos de referência

Um caminho de referência é um caminho cuja sintaxe é limitada para que possa identificar somente um nó em uma estrutura JSON:

  • Você pode acessar os campos de objeto usando somente ponto (.) e colchete ([ ]).

  • Funções como length() não são compatíveis.

  • Operadores lexicais, que não são simbólicos, como subsetof não são compatíveis.

  • A filtragem por expressão regular ou por referência a outro valor na estrutura JSON não é aceita.

  • Os operadores @, ,, : e ? não são aceitos.

Por exemplo, se os dados de entrada de estado contivessem os seguintes valores:

{ "foo": 123, "bar": ["a", "b", "c"], "car": { "cdr": true } }

Os caminhos de referência a seguir retornariam o seguinte:

$.foo => 123 $.bar => ["a", "b", "c"] $.car.cdr => true

Alguns estados usam caminhos e caminhos de referência para controlar o fluxo de uma máquina de estado ou configurar as definições ou opções de um estado. Para obter mais informações, consulte Modelagem do processamento do caminho de entrada e saída do fluxo de trabalho com simulador de fluxo de dados e Uso JSONPath eficaz em AWS Step Functions.

Nivelamento de uma matriz de matrizes

Se o estado Estado paralelo do fluxo de trabalho ou Estado de mapa do fluxo de trabalho em suas máquinas de estado retornar uma matriz de matrizes, você poderá transformá-las em uma matriz nivelada com o campo ResultSelector. Você pode incluir esse campo na definição do estado Paralelo ou Mapa para manipular o resultado desses estados.

Para nivelar matrizes, use a sintaxe: [*] no ResultSelector campo, conforme mostrado no exemplo a seguir.

"ResultSelector": { "flattenArray.$": "$[*][*]" }

Para exemplos mostrando como nivelar uma matriz, consulte a Etapa 3 nos seguintes tutoriais: