Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

1 Escapando caracteres especiais dos valores de macros LLD em JSONPath

Quando macros de descoberta de baixo nível são usadas no pré-processamento de JSONPath e seus valores são resolvidos, as seguintes regras de escape de caracteres especiais são aplicadas:

  • apenas os caracteres barra invertida (\) e aspas duplas (") são considerados para escape;
  • se o valor da macro resolvida contiver esses caracteres, cada um deles será escapado com uma barra invertida;
  • se eles já estiverem escapados com uma barra invertida, isso não é considerado como escape e tanto a barra invertida quanto o caractere especial seguinte são escapados novamente.

Por exemplo:

JSONPath Valor da macro LLD Após substituição
$.[?(@.value == "{#MACRO}")] valor "especial" $.[?(@.value == "valor \"especial\"")]
c:\temp $.[?(@.value == "c:\\temp")]
a\\b $.[?(@.value == "a\\\\b")]

Quando usada na expressão, a macro que pode ter caracteres especiais deve ser colocada entre aspas duplas:

JSONPath Valor da macro LLD Após substituição Resultado
$.[?(@.value == "{#MACRO}")] valor "especial" $.[?(@.value == "valor \"especial\"")] OK
$.[?(@.value == {#MACRO})] $.[?(@.value == valor \"especial\")] Expressão JSONPath inválida

Quando usada no caminho, a macro que pode ter caracteres especiais deve ser colocada entre colchetes e aspas duplas:

JSONPath Valor da macro LLD Após substituição Resultado
$.["{#MACRO}"].value c:\temp $.["c:\\temp"].value OK
$.{#MACRO}.value $.c:\\temp.value Expressão JSONPath inválida