dataclasses-json
Easily serialize dataclasses to and from JSON.
Install
dataclasses-json on PyPI
pip
pip install dataclasses-jsonuv
uv add dataclasses-jsonpoetry
poetry add dataclasses-jsonPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — marshmallow, typing-inspect |
| Maintenance | actively maintained — 795 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: dataclasses_json-0.6.7-py3-none-any.whl
About dataclasses-json
from the package's own PyPI description — quoted content, verbatim
Dataclasses JSON
https://github.com/lidatong/dataclasses-json/workflows/dataclasses-json/badge.svg (image)
This library provides a simple API for encoding and decoding dataclasses to and from JSON.
It's very easy to get started.
README / Documentation website. Features a navigation bar and search functionality, and should mirror this README exactly -- take a look!
Quickstart
pip install dataclasses-json
```python from dataclasses import dataclass from dataclasses_json import dataclass_json
@dataclass_json @dataclass class Person: name: str
person = Person(name='lidatong') person.to_json() # '{"name": "lidatong"}' <- this is a string person.to_dict() # {'name': 'lidatong'} <- this is a dict Person.from_json('{"name": "lidatong"}') # Person(1) Person.from_dict({'name': 'lidatong'}) # Person(1)
You can also apply schema validation using an alternative API
This can be useful for "typed" Python code
Person.from_json('{"name": 42}') # This is ok. 42 is not a str, but
# dataclass creation does not validate...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Serializes Python dataclasses to and from JSON with minimal boilerplate, supporting nested structures, custom field naming conventions, and schema validation via marshmallow.
Low friction: pure Python wheel with only two runtime dependencies (marshmallow and typing-inspect). Repository is actively maintained with recent commits and 1486 stars, indicating stable community support.
MIT license permits unrestricted use, modification, and distribution in both open and closed-source projects, with only attribution required.
Usage
pip install dataclasses-json
from dataclasses import dataclass
from dataclasses_json import dataclass_json
@dataclass_json
@dataclass
class Person:
name: str
person = Person(name='example')
json_str = person.to_json() # '{"name": "example"}'
person_restored = Person.from_json(json_str)
Requires Python 3.7 or later; dataclasses are built-in from 3.7 onward.
Verdict: Mature, actively maintained library with no known vulnerabilities and permissive licensing. Low install friction and broad Python version support (3.7–3.12) make it a reliable choice for dataclass-to-JSON serialization in production environments.
Needs verification
- Performance characteristics when serializing deeply nested or large dataclass hierarchies
- Behavior when encoding/decoding datetime objects with non-UTC timezones across system boundaries
- Whether typing-inspect and marshmallow versions have known incompatibilities with specific Python 3.12 releases
Similar packages
permissive · top 1,000 on PyPI
inflectionpermissive · top 1,000 on PyPI
pybase64permissive · top 1,000 on PyPI
ujsonpermissive · top 1,000 on PyPI
mashumaropermissive · top 1,000 on PyPI
ormsgpackpermissive · top 1,000 on PyPI
simplejsonpermissive · top 1,000 on PyPI
typedloadcopyleft · top 1,000 on PyPI
msgspecpermissive · top 1,000 on PyPI
orjsoncopyleft · top 1,000 on PyPI