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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for codified_json-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 203cf714a00fbcd0d1d709a3bc5b1a0356db7857a69950534732d2353679064e |
|
MD5 | 36325fcc4c9b67cddcbb99f7b5f31da4 |
|
BLAKE2b-256 | c95b053ba0a8e4a172398b6b76b84c508d1ed4ed9468f0c3166c1360dddaee58 |