A tool to convert any class to json and convert json to object
Project description
Tool to convert Class, object and dict to Json and Json to Object (SmartJson)
SmartJson is a simple tool to convert any class to JSON and convert json to Object.
Documentation
Features:
version (2.0.0)
Support :
Class
date
datetime
set
OrderedDict
deque
list
int
float
bool
complex
tuple
str
dict
bytes
None
Install
smartjson
is released on PyPI, so all you need is:
$ pip install smartjson
To upgrade to latest version:
$ pip install --upgrade smartjson
Usage
Requirements
Python >= 2.7 must be installed.
Parameters
class or object or dict
: you want to convert to json
Project structure:
scripts
- source code of a packageexample.py
- working examples
Contribute
- If unsure, open an issue for a discussion
- Create a fork
- Make your change
- Make a pull request
- Happy contribution!
EXAMPLE
Class
import datetime
import json
from collections import deque, OrderedDict
from scripts.__smart_json__ import SmartJson
class Test:
def __init__(self):
self.test = "none"
self.id = 2
self.date = datetime.datetime.now()
self.tuple = [((1, 'a'), (2, 'b'))]
data = {
"int": 1,
"str": "SmartJson",
"bytes": "pip install smartjson".encode("utf-8"),
"date": datetime.date(2010, 1, 1),
"datetime": datetime.datetime(2020, 1, 1, 18, 30, 0, 500),
"pull": Test(),
"set": (["1", 12, datetime.datetime.now()]),
"list": [datetime.datetime.now(), Test()],
"ordereddict": OrderedDict([
("b", OrderedDict([("b", Test()), ("a", datetime.datetime.now())])),
("a", OrderedDict([("b", 1), ("a", [((1, 'a'), (datetime.datetime.now(), 'b'))])])),
]),
"deque": deque([
deque([1, 2]),
deque([3, 4]),
])
}
class Pull:
def __init__(self):
self.id = 2
self.title = "Iam pull"
self.author = "Joel O."
self.subPull = Pull.SubPull()
self.data = data
self.date = datetime.datetime.now()
self.list = [1, datetime.datetime.now(), Pull.SubPull()]
class SubPull:
def __init__(self):
self.subId = 3
self.subTitle = "I am sub title"
self.subAuthor = "OKJ."
self.date = datetime.date(2010, 1, 1)
# Example
my_json = SmartJson(data).serialize()
print(my_json)
Output:
{
"bytes": "pip install smartjson",
"date": "2010-01-01",
"datetime": "2020-01-01 18:30:00.000500",
"deque": {
"1": 2,
"3": 4
},
"int": 1,
"list": [
"2019-10-01 19:39:01.916122",
{
"date": "2019-10-01 19:39:01.916122",
"id": 2,
"test": "none",
"tuple": [
[
[
1,
"a"
],
[
2,
"b"
]
]
]
}
],
"ordereddict": {
"a": {
"a": [
[
[
1,
"a"
],
[
"2019-10-01 19:39:01.916122",
"b"
]
]
],
"b": 1
},
"b": {
"a": "2019-10-01 19:39:01.916122",
"b": {
"date": "2019-10-01 19:39:01.916122",
"id": 2,
"test": "none",
"tuple": [
[
[
1,
"a"
],
[
2,
"b"
]
]
]
}
}
},
"pull": {
"date": "2019-10-01 19:39:01.916122",
"id": 2,
"test": "none",
"tuple": [
[
[
1,
"a"
],
[
2,
"b"
]
]
]
},
"set": [
"1",
12,
"2019-10-01 19:39:01.916122"
],
"str": "SmartJson"
}
Json to Object
objFromFile = smart_json.toObjectFromFile("jobs.json")
obj = smart_json.toObject('{"people":[{"name":"Scott", "website":"stackabuse.com", "from":"Nebraska"}]}')
obj2 = smart_json.toObject({'item': 'Beer', 'cost': '£4.00'})
print(obj2.item, obj2.cost)
print(objFromFile.job.item.another.precision)
print(obj.people[0].name, obj.people[0].website)
# Beer £4.00
# 99.56
# Scott stackabuse.com
###Author : Koffi Joel O.
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
smartjson-2.0.0.tar.gz
(6.3 kB
view hashes)
Built Distribution
Close
Hashes for smartjson-2.0.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9974c9059eefee50b57c2f609e7e58a0e01b81f4aee9e4a7bf4b4acb29da145 |
|
MD5 | 0bfc05f6cd691decc2b15bdb2fa9fbfe |
|
BLAKE2b-256 | 440ff3c8244c6fcdba5dc49758ea222473c242b680d42a7de2a2284497e8bb99 |