

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á.

# Correspondência de chaves
<a name="attribute-key-matching"></a>

Use o operador `exists` em uma política de filtro para combinar as mensagens recebidas com base na presença ou ausência de uma propriedade específica.
+ `exists` funciona somente nos nós leaf (atributos finais na estrutura).
+ Não se aplica a nós intermediários em uma estrutura JSON aninhada.
+ Use `"exists": true` para estabelecer correspondência com mensagens recebidas que incluam a propriedade especificada. A chave deve ter um valor não nulo e não vazio.

  Por exemplo, a propriedade de política seguinte usa o operador `exists` com um valor de `true`:

  ```
  "store": [{"exists": true}]
  ```

  Ela estabelece correspondência com qualquer atributo de mensagem que contenha a chave de atributo `store`, como a seguinte:

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  Também estabelece correspondência com um dos seguintes corpos de mensagem:

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  No entanto, não estabelece correspondência com nenhum atributo de mensagem *sem* a chave de atributo `store`, como o seguinte:

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  Nem corresponde ao seguinte corpo de mensagem:

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```
+ Use `"exists": false` para estabelecer correspondência com mensagens recebidas que *não* incluam a propriedade especificada.
**nota**  
`"exists": false` só estabelecerá correspondência se pelo menos um atributo estiver presente. Um conjunto vazio de atributos impossibilita que o filtro estabeleça correspondência.

  Por exemplo, a propriedade de política seguinte usa o operador `exists` com um valor de `false`:

  ```
  "store": [{"exists": false}]
  ```

  Ela *não* estabelece correspondência com nenhum atributo de mensagem que contenha a chave de atributo `store`, como o seguinte:

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  Também não estabelece correspondência com o seguinte corpo de mensagem:

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  No entanto, estabelece correspondência com qualquer atributo de mensagem *sem* a chave de atributo `store`, como o seguinte:

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  Também estabelece correspondência com o seguinte corpo de mensagem:

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```