# Codificador compatible con JSON { #json-compatible-encoder }
Hay algunos casos en los que podrías necesitar convertir un tipo de dato (como un modelo de Pydantic) a algo compatible con JSON (como un `dict`, `list`, etc).
Por ejemplo, si necesitas almacenarlo en una base de datos.
Para eso, **FastAPI** proporciona una función `jsonable_encoder()`.
## Usando el `jsonable_encoder` { #using-the-jsonable-encoder }
Imaginemos que tienes una base de datos `fake_db` que solo recibe datos compatibles con JSON.
Por ejemplo, no recibe objetos `datetime`, ya que no son compatibles con JSON.
Entonces, un objeto `datetime` tendría que ser convertido a un `str` que contenga los datos en formato ISO.
De la misma manera, esta base de datos no recibiría un modelo de Pydantic (un objeto con atributos), solo un `dict`.
Puedes usar `jsonable_encoder` para eso.
Recibe un objeto, como un modelo de Pydantic, y devuelve una versión compatible con JSON:
{* ../../docs_src/encoder/tutorial001_py310.py hl[4,21] *}
En este ejemplo, convertiría el modelo de Pydantic a un `dict`, y el `datetime` a un `str`.
El resultado de llamarlo es algo que puede ser codificado con la función estándar de Python `json.dumps()`.
No devuelve un gran `str` que contenga los datos en formato JSON (como una cadena de texto). Devuelve una estructura de datos estándar de Python (por ejemplo, un `dict`) con valores y sub-valores que son todos compatibles con JSON.
/// note | Nota
`jsonable_encoder` es utilizado internamente por **FastAPI** para convertir datos. Pero es útil en muchos otros escenarios.
///