mlevit
mlevit

Reputation: 2736

Compress with Python Zlib, decompress in JavaScript Zlib

Trying to compress some data in Python (think API backend) then open and decompress in JS (frontend).

Python

zlib.compress(bytes(json.dumps(["a", "b", "c"]), "utf-8"))

This produces a byte object

b'x\x9c\x8bVJT\xd2QPJ\x02\x11\xc9J\xb1\x00\x1a\x13\x03C'

How do I parse this and decompress this with JavaScript?

Upvotes: 1

Views: 1441

Answers (1)

mlevit
mlevit

Reputation: 2736

Thanks to @GordonAitchJay for the tip there. Got there in the end.

On the Python side we have

json_object = ["a", "b", "c"]
base64.b64encode(zlib.compress(bytes(json.dumps(json_object), "utf-8"))).decode("ascii")

On the JS side we have

let compressedData = Uint8Array.from(atob(input), (c) => c.charCodeAt(0));
let decompressedData = pako.inflate(compressedData, { to: "string" });
let jsonObject = JSON.parse(decompressedData);

Upvotes: 2

Related Questions