# MessagePack to JSON Converter

###### Updated: Sep 11, 2018

MessagePack to JSON Converter is the world's first online tool for converting MessagePack encoded data into JSON. The input Message Pack can either be in Hex or Uint8 Array format. Each byte (in either Hex or Uint8 form) can have spaces in between them. Also, line breaks can be used to wrap long lines into view. Checkout the examples.

Settings

### Decode MessagePack

Despite the fact that this tool is a data converter from msgpack to JSON, the most important use case of this tool is to decode Message Pack data and visualize it in the form of JSON. Because MessagePack is a binary format, we humans cannot make sense out of it. Well, unless we convert it to a format such as JSON. This tool aims to bridge that gap and allow you to decode msgpack data stored in various formats such as Hex, UInt8Array, Base64 and Percent Encoding.

### MessagePack

MessagePack is an efficient binary serialization format which is similar to JSON but faster and smaller in size. It is just that it is not meant for the human eye.

### JSON

JavaScript Object Notation (JSON) pronounced as "Jason" is the de facto standard for data interchange on the web these days. It is a simple format that is easier to comprehend than XML. It also has less size than XML because of no closing tags. Interacting with JSON from JavaScript is extremely seamless.

#### Settings Explained

Input Type
The type of the input MessagePack data. The following input formats are supported:-
##### Auto Detect
The actual type of the input is automatically detected
##### Hex
In Hex mode, the MessagePack bytes are converted to their two digit hex representation. The input can include space between the individual bytes, the hex characters can be in uppercase & the input can also be wrapped into multiple lines.
DD 00 00 00 01 DF 00 00 00 04 A4 6E 61 6D 65 AA 52 6F 62 69
6E 20 48 6F 6F 64 AA 64 65 70 61 72 74 6D 65 6E 74 A0 A7 6D
61 6E 61 67 65 72 A0 A6 73 61 6C 61 72 79 CC C8
##### Base64
In Base64 mode, the MessagePack bytes are in the Base64 format. The input can be wrapped into multiple lines.
3QAAAAHfAAAABKRuYW1lqlJvYmluIEhvb2SqZGVwYXJ0bWVudKCnbWFuYWdl
cqCmc2FsYXJ5zMg=
##### UInt8 Array
Here, the input is an array of 8 bit unsigned integers which can be used in programming languages such as JavaScript, Java, C#. The numbers can be delimited by space & in between them. Also, the input can be wrapped into multiple lines.
[221, 0, 0, 0, 1, 223, 0, 0, 0, 4, 164, 110, 97, 109, 101, 170, 82, 111, 98, 105,
110, 32, 72, 111, 111, 100, 170, 100, 101, 112, 97, 114, 116, 109, 101, 110, 116, 160, 167, 109,
97, 110, 97, 103, 101, 114, 160, 166, 115, 97, 108, 97, 114, 121, 204, 200]
##### Bracketed Binary
In this format, the binary characters are wrapped in their hex forms inside brackets
[0x81][0xa4]rows[0x91][0x91][0xa7]SUCCESS
##### Percent Encoding
In this format, the binary characters are prefixed by a percentage sign (%) followed by a two character Hex representation of the byte value
%C3%9F%00%00%00%03%C2%A4name%C2%AEPartho%20Sarathi%C2%A3age%1E%C2%A6isMale%C3%83
##### Escaped Hex
In this format, the binary characters are prefixed by \x followed by a two character Hex representation of the byte value
ß\x00\x00\x00\x03¤name®Partho Sarathi£age\x1E¦isMaleÃ
Indent
This setting governs whether or not the output is indented. The indented output is easier for humans to comprehend. On the other hand, a non-indented output is compact & smaller in size (best for transmission). So, JSON is often minified which compacts & compresses the output by removing non-essential whitespace.
##### Indentation On
{
"name": "John Doe",
"age": 69
}
##### Indentation Off
{"name":"John Doe","age":69}
Keys In Quotes
A valid JSON must have double quotes around the keys (or property names). However, when used directly inside JavaScript, this is not necessary (unless the keys have special characters in them). So, if you intend to use the output directly inside JavaScript, deselect this option.
##### Keys In Quotes On
{"name":"John Doe","age":69}
##### Keys In Quotes Off
{name:"John Doe",age:69}
Camel Case Property Names
When this option is selected, the casing of keys is converted to lowerCamelCase. This is the default naming convention of JSON fields & JavaScript variables.
##### Camel Case On
{"personName":"John Doe"}
##### Camel Case Off
{"PersonName":"John Doe"}

Use this option only when you are trying to cleanse a JSON structure because changing the keys will result in failure in applications that make use of this JSON format.
Expanded Braces
When this option is selected, braces are written on a new line (C# style). Otherwise braces are written on the same line (Java/JavaScript style).
##### Expanded Braces On
{
"name": "John Doe",
"age": 25,
[
{
"city": "Phoenix",
"country": "Arizona"
},
{
"city": "Miami",
"country": "Florida"
}
]
}
##### Expanded Braces Off
{
"name": "John Doe",
"age": 25,
{
"city": "Phoenix",
"country": "Arizona"
},
{
"city": "Miami",
"country": "Florida"
}
]
}
Format Embedded JSON
When this option is selected, JSON that is embedded or escaped within string values is processed, expanded & converted to nodes.
##### Format Embedded JSON On
{
"name": "John Doe",
"age": 25,
{
"city": "Phoenix",
"country": "Arizona"
},
{
"city": "Miami",
"country": "Florida"
}
]
}
##### Format Embedded JSON Off
{
"name": "John Doe",
"age": 25,
}
{"systemTime":"2014-01-01T23:28:56.782Z"}
{"systemTime":"\/Date(1388618936782)\/"}