Skip to main content

Dataclasses JSON

This library provides a simple API for encoding and decoding dataclasses to and from JSON.

It's recursive (see caveats below), so you can easily work with nested dataclasses.

In addition to the supported types in the py to JSON table, any arbitrary Collection type is supported (they are encoded into JSON arrays, but decoded into the original collection types).

The latest release is compatible with both Python 3.7 and Python 3.6 (with the dataclasses backport).

Quickstart

pip install dataclasses-json

from dataclasses import dataclass
from dataclasses_json import DataClassJsonMixin

@dataclass
class MyDataClass(DataClassJsonMixin):
    name: str

my_dataclass_instance = MyDataClass('example')

# Encoding to JSON
some_json_string = my_dataclass_instance.to_json()

# Decoding from JSON
MyDataClass.from_json(some_json_string)

A larger example

from dataclasses import dataclass
from dataclasses_json import DataClassJsonMixin
from typing import List


@dataclass(frozen=True)
class Minion(DataClassJsonMixin):
    name: str


@dataclass(frozen=True)
class Boss(DataClassJsonMixin):
    minions: List[Minion]

boss = Boss([Minion('evil minion'), Minion('very evil minion')])
boss_json = """
{
    "minions": [
        {
            "name": "evil minion"
        },
        {
            "name": "very evil minion"
        }
    ]
}
""".strip()

assert boss.to_json(indent=4) == boss_json
assert Boss.from_json(boss_json) == boss

Caveats

Data Classes that contain forward references (e.g. recursive dataclasses) are not currently supported.

Metadata

Release files for dataclasses-json 0.0.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataclasses-json 0.0.12
File Size Uploaded
dataclasses-json-0.0.12.tar.gz 3.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dataclasses-json 0.0.12
File Interpreter ABI Platform
dataclasses_json-0.0.12-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 kB

Release files / dataclasses-json-0.0.12.tar.gz

Download URL dataclasses-json-0.0.12.tar.gz
Size 3.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ffbe95a119f3f3d234edd8c2727ac7e12fdf819dff26778034cedb6ada3fde06
BLAKE2b-256 checksum
How to use checksums
5a0cb3b3032fa3b8a1bf26b3ec7903a14cdf12362fc8b76d9146d6aa4a027280
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

Release files / dataclasses_json-0.0.12-py3-none-any.whl

Download URL dataclasses_json-0.0.12-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd1e6bf7e98e6924849886bf7451e09cfc4f9a1e77ecf64fe79714140fff2f02
BLAKE2b-256 checksum
How to use checksums
1148ef5a7dc88655851c5effced2f3be491a2ddc9e5993767a7a9189069728ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

Release history Release notifications | RSS feed

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.14

2 release files

0.5.13

2 release files

0.5.12

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

This release

0.0.12 This release

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page