# MessagePack to JSON Converter

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

### Conversion Result

#### JSON to MessagePack Converter

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

### 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 most common data interchange format on the web. Douglas Crockford first released the JSON specification in the early 2000s. It is a simple format that is easier to comprehend than XML. It is also smaller in size because it does not have closing tags. A wide variety of programming languages can parse JSON files. They also support the serialization of data structures to JSON. You can copy JSON text to JavaScript and start using them without any modifications.

##### 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 to comprehend. On the other hand, a non-indented output is compact. The smaller size is best for transmission over the network. So, we often minify JSON 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). Unless the keys include special characters, double quotes are unnecessary when used directly inside JavaScript. Turn off this setting if you want to omit quotes around keys.

###### Keys In Quotes On

{"name":"John Doe","age":69}
###### Keys In Quotes Off

{name:"John Doe",age:69}
• ###### 4. Camel Case Property Names

Select this option to convert the casing of keys to lowerCamelCase, the default naming convention of JSON properties & JavaScript variables.

###### Camel Case On

{"personName":"John Doe"}
###### Camel Case Off

{"PersonName":"John Doe"}

Use this option only when cleaning a JSON structure because changing the keys will cause failures in applications that use this JSON format.

• ###### 5. Expanded Braces

Braces are written on a new line (C# style) when this option is selected. Turning the option off puts the Braces 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 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 is 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