# libtmux.json:read-filter

- **Package:** libtmux/json
- **Language:** Common Lisp
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-lisp/blob/c2e5fc4ed3befda21f45dfa5d5868c38fd138311/src/json.lisp#L399
- **Public owner:** libtmux.json
- **Page:** https://libtmux.org/en/lisp/latest/reference/libtmux-json-read-filter/

```
(read-filter source &key (allow-regex nil) (max-input-bytes +default-max-input-bytes+) (max-depth +default-max-depth+) (max-nodes +default-max-nodes+) (max-string-length +default-max-string-length+) (max-membership +default-max-membership+) (max-integer-digits +default-max-integer-digits+))
```

Read one bounded libtmux.lisp.filter/1 JSON string into a compiled filter.
External names resolve through closed registries and are never interned. Regex
nodes are rejected unless ALLOW-REGEX is true and libtmux/regex is loaded.
Parser limits bound UTF-8 input bytes, nesting, JSON nodes, strings, membership
arrays and integer-token digits. Decimal and exponent number syntax is rejected
before conversion. Parser limits do not interrupt CL-PPCRE execution.

## Parameters

- `source`
- `allow-regex?`
- `max-input-bytes?`
- `max-depth?`
- `max-nodes?`
- `max-string-length?`
- `max-membership?`
- `max-integer-digits?`

## Guides

Pages that discuss `read-filter`.

- [Query interchange](/en/lisp/latest/topics/query-interchange/)
