# Usando JSONPath para validar números com dígitos iniciais específicos

[JSONPath](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/double-braces/double-braces-functions/json-functions) é uma ferramenta poderosa para consultar e filtrar dados JSON. Ele permite que você extraia facilmente dados específicos de um objeto ou array JSON, sendo valioso tanto para desenvolvedores quanto para analistas de dados.

Nos próximos passos, você aprenderá a usar o JSONPath para verificar se um número específico começa com 0, 1, 2 ou 3. Isso pode ser útil em situações onde é necessário filtrar dados ou realizar operações condicionais com base nos dígitos iniciais de um número.

## Validando números com JSONPath

Para usar o JSONPath e verificar se um número começa com 0, 1, 2 ou 3, você pode usar a seguinte expressão:

```json
$[?(@.body.orderId =~ /^0.*/i || @.body.orderId =~ /^1.*/i || @.body.orderId =~ /^2.*/i || @.body.orderId =~ /^3.*/i)]
```

Vamos entender essa expressão:

* `[ ]`: Usados para filtragem.
* `?`: Indica uma expressão de filtro.
* `@.body.orderId`: Representa o caminho para o campo `orderId` na estrutura JSON.
* `=~`: Serve como o operador de correspondência com regex no JSONPath.
* `/^0.*/i`: Verifica se o `orderId` começa com 0, 1, 2 ou 3 (sem diferenciar maiúsculas de minúsculas).
* `||`:  Age como o operador lógico **OU**, combinando várias condições.

Se o número atender a essa condição, ele será retornado pela consulta do JSONPath. Caso contrário, será excluído dos resultados.

### Exemplo

Suponha que temos os seguintes dados JSON:

```json
{ "body": { "orderId": "12345" } }
```

Aplicando a expressão JSONPath a esse objeto, teríamos uma correspondência, pois o `orderId` (12345) começa com 1.
