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
Saiba mais sobre como transmitir dados entre estados com variáveis e transformar dados com JSONata.
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 JsonPathQueryLanguage
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_
), 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
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: