Skip to main content

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)

Source distribution for codified-json 0.1.1
File Size Uploaded
codified_json-0.1.1.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codified-json 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

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