# MessagePack to JSON Converter

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

### Conversion Result

#### JSON to MessagePack Converter

Convert JSON text, document or file into MessagePack format that is viewable in HEX

Background Information

### 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 which is human readable. This tool aims to bridge that gap and allow you to decode msgpack data stored in various formats such as Hex, UInt8Array, Base64 encoded and Percent Encoding.

The binary data that the input message pack represents can have primitive data types such as int, float, bool, string or complex types composed of these primitives.

### 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. JSON format was first specified by Douglas Crockford in the early 2000s

##### Settings Explained
• ###### 1. 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Ã
• ###### 2. 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}
• ###### 3. 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}
• ###### 4. 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.
• ###### 5. 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"
}
]
}
• ###### 6. 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,
}
• ###### 7. Date Format Handling

Even though, there is no standard for representing dates in JSON, two popular formats have emerged. The ISO Date Format being the most widely used. If you are using a .NET stack, quite possibly you are using the Microsoft Date Format.

###### ISO Date Format

{"systemTime":"2014-01-01T23:28:56.782Z"}
###### Microsoft Date Format

{"systemTime":"\/Date(1388618936782)\/"}
• ###### 8. Allow Partial Parsing

If selected, even incomplete, corrupt or erroneous message pack data is attempted to be converted. This can be used to diagnose and debug issues with your msgpack data.

###### History
Aug 2, 2018
Support for conversion of invalid, corrupt or partial MessagePack bytes
May 27, 2018
Support for Escaped Hex input
Apr 1, 2018
Support for Percent Encoding
Dec 30, 2017
Support for selecting input types including Hex, Base64, UInt8 Array, Bracketed Binary & Auto Detect
Nov 3, 2017
Support for hex input prefixed by 0x
Oct 19, 2017
Array input mode
Oct 3, 2017
Tool Launched