Codified-JSON
Codified-JSON is a new representation of JSON for transfering payloads as smaller sizes between software applications.
Please read the specifications for the Codified-JSON representation here:
https://ty2huang.github.io/codified-json/
This library helps translate between python objects and the Codified-JSON representation (stored as string or compressed bytes).
Installation
pip install --force-reinstall git+https://github.com/ty2huang/codified-json-python-library.git
Getting started
Translating between JSON-compatible python objects and Codified-JSON is very easy.
import codified_json as cjson
data = [
{"apple": "a", "clementine": 4, "banana": "e"},
{"clementine": 4, "banana": 5, "apple": 34},
{"banana": 4.5, "apple": False, "clementine": 4},
{"clementine": 4, "apple": None, "banana": True}
]
# Encode into codified-json string using "cjson.as_str"
cjson_str = cjson.as_str(data)
# Decode back to python objects using "cjson.parse_str"
decoded_data = cjson.parse_str(cjson_str)
assert data == decoded_data
Further Information
Following the example from the "Getting Started" section, if you print out data as JSON string vs Codified-JSON string, you'll find that the Codified-JSON representation is shorter.
import json
def test():
json_str = json.dumps(data)
print(f"As JSON (length {len(json_str)}):")
print(json_str)
print()
print(f"As Codified-JSON (length {len(cjson_str)}):")
print(cjson_str)
test()
Output is printed below. Size difference gets bigger as the JSON array size increases.
As JSON (length 193):
[{"apple": "a", "clementine": 4, "banana": "e"}, {"clementine": 4, "banana": 5, "apple": 34}, {"banana": 4.5, "apple": false, "clementine": 4}, {"clementine": 4, "apple": null, "banana": true}]
As Codified-JSON (length 146):
{"s":{"0":["apple","banana","clementine"]},"b":[{"i":0,"v":["a","e",4]},{"i":0,"v":[34,5,4]},{"i":0,"v":[false,4.5,4]},{"i":0,"v":[null,true,4]}]}
Tests
python setup.py pytest
License
The "codified_json" module was written by Tim Huang, and is released under the MIT license.
See the file LICENSE for more details.
Release files for codified-json 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codified_json-0.1.1.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codified_json-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.6 kB
Release files / codified_json-0.1.1.tar.gz
| Download URL | codified_json-0.1.1.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a821633dfddbce82834973dc2959a611d180567355f40c732e37df283624f3fa
|
|
BLAKE2b-256 checksum How to use checksums |
c0a76bf042ed53a6687e54160a7920337a420ac2ad42b162df8b2c09b86a63ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|
Release files / codified_json-0.1.1-py3-none-any.whl
| Download URL | codified_json-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
203cf714a00fbcd0d1d709a3bc5b1a0356db7857a69950534732d2353679064e
|
|
BLAKE2b-256 checksum How to use checksums |
c95b053ba0a8e4a172398b6b76b84c508d1ed4ed9468f0c3166c1360dddaee58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|