MessagePack payloads from queues, caches and mobile APIs are efficient but unreadable. MessagePack to JSON decodes any standard msgpack stream — every integer width, floats, strings, binary blobs, arrays and maps — into formatted JSON you can inspect and reuse.
MessagePack to JSON
Decode a MessagePack (msgpack) stream into readable JSON — every integer width, strings, binary and maps.
Everything runs locally in your browser — your MessagePack never leaves this page.
Hex and base64 input are detected automatically. When a file is loaded it wins over pasted text.
MessagePack markers understood
| Marker | Meaning | JSON output |
|---|---|---|
| 0x00–0x7f / 0xe0–0xff | fixint | number |
| 0xcc–0xcf | uint8 … uint64 | number (beyond 2^53: string) |
| 0xd0–0xd3 | int8 … int64 | number (beyond 2^53: string) |
| 0xca / 0xcb | float32 / float64 | number |
| 0xa0–0xbf, 0xd9–0xdb | fixstr / str8 / str16 / str32 | string |
| 0xc4–0xc6 | bin8 / bin16 / bin32 | text when valid, else hex |
| 0x90–0x9f, 0xdc / 0xdd | fixarray / array16 / array32 | array |
| 0x80–0x8f, 0xde / 0xdf | fixmap / map16 / map32 | object |
| 0xc0 / 0xc2 / 0xc3 | nil / false / true | null / false / true |
| 0xc7–0xc9, 0xd4–0xd8 | ext | { type, hex } |
About MessagePack to JSON
Features
- Complete marker support: all int/uint widths, float32/64, str, bin, array, map.
- Ext types: shown as { type, hex } so nothing is lost.
- Safe int64: within 2^53 as numbers, larger as strings with a warning.
- Flexible input: upload a .msgpack file, or paste hex or base64.
- Byte-accurate errors: truncation and unknown markers report the offset.
- Private: All decoding happens in your browser.
How to Use
- Upload a .msgpack file or paste the bytes as hex or base64.
- Review the decoded JSON — every value, key and nesting level.
- Copy or download the JSON document.
Examples
Example 1 — Queue payloads. A backend engineer decodes MessagePack events pulled from a message queue to inspect them as JSON.
Example 2 — Redis inspection. A developer retrieves a MessagePack value from Redis and decodes it to verify the stored document.
Example 3 — Mobile traces. A client engineer decodes a captured msgpack API response to debug field values.
Example 4 — Interop testing. A QA engineer decodes fixtures produced by a different library to confirm compatibility.
Benefits
- Instant: Files decode in the browser in milliseconds.
- Complete: Every standard marker is understood.
- Readable: 64-bit values never silently corrupt.
- Zero upload: Data never leaves your machine.
- No install: Works on any device with a browser.
Frequently Asked Questions
What is MessagePack?
MessagePack (msgpack) is a compact binary serialization format similar to JSON. This tool decodes any standard msgpack stream — from single-byte fixints up to 32-bit maps and arrays — into formatted JSON.
Which msgpack types are supported?
All of them: fixint, int8/16/32/64, uint8/16/32/64, float32/64, fixstr/str8/16/32, bin8/16/32, fixarray/array16/32, fixmap/map16/32, nil, true, false, and ext types (shown with their type code).
How are binary (bin) values shown?
Binary payloads are decoded as UTF-8 text when they are valid text; otherwise they are shown as hex so nothing is lost.
How are large 64-bit integers handled?
Values within the 2^53 safe-integer range become plain numbers. Larger values are kept as strings with a warning, so no precision is silently lost.
How do I provide the data?
Upload a .msgpack file, or paste the bytes as hexadecimal or base64 text. Hex and base64 input are detected automatically.
Is my MessagePack uploaded anywhere?
No. Decoding happens entirely in your browser. Nothing is uploaded, stored or logged.