Skip to main content

Object to JSON serialization with none to minimal need for custom declarations

Project description

Object-to-JSON

JSON serializer for class instances with minimal declaration overhead.

Features

  • Attributes that represent object state are automatically detected by checking __init__ argument names
  • Custom serializers for objects with complex state
  • Automatic generation of __eq__ method

Usage

Installation

pip install objtojson

Example

from objtojson import Serialized

class SomeClass(Serialized):
    def __init__(self, someAttribute, other):
        self.someAttribute = someAttribute
        self.other = other

class AnotherClass(Serialized):
    def __init__(self, a, b):
        self.a = a
        self.b = b

a = SomeClass(4, [AnotherClass(['a', 'list'], {'mykey': 34}), 'somestring'])      
print(a.Serialize())

Result:

{
    "__someclass__": {
        "someAttribute": 4,
        "other": [
            {
                "__anotherclass__": {
                    "a": [
                        "a",
                        "list"
                    ],
                    "b": {
                        "mykey": 34
                    }
                }
            },
            "somestring"
        ]
    }
}

Saving to file, loading from file

from objtojson import Serializer

Serializer.Save('data.json', a)
a_reloaded = Serializer.Load('data.json')

Restrictions

  • Attribute names must match __init__ argument names
  • Tuples will be serialized/deserialized as lists
  • Dict keys must be valid JSON object keys (i.e., strings)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

objtojson-0.4.0.tar.gz (4.3 kB view hashes)

Uploaded Source

Built Distribution

objtojson-0.4.0-py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page