Skip to main content

Codified-JSON - represent the same JSON data with less characters

Project description

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.

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

codified_json-0.1.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

codified_json-0.1.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file codified_json-0.1.1.tar.gz.

File metadata

  • Download URL: codified_json-0.1.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for codified_json-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a821633dfddbce82834973dc2959a611d180567355f40c732e37df283624f3fa
MD5 8383a369e2a7c1d5283a98b72251e073
BLAKE2b-256 c0a76bf042ed53a6687e54160a7920337a420ac2ad42b162df8b2c09b86a63ff

See more details on using hashes here.

File details

Details for the file codified_json-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for codified_json-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 203cf714a00fbcd0d1d709a3bc5b1a0356db7857a69950534732d2353679064e
MD5 36325fcc4c9b67cddcbb99f7b5f31da4
BLAKE2b-256 c95b053ba0a8e4a172398b6b76b84c508d1ed4ed9468f0c3166c1360dddaee58

See more details on using hashes here.

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