Convertidor de MessagePack a JSON

MessagePack a JSON

Acerca de MessagePack

¿Qué es MessagePack?

MessagePack es un formato compacto de serialización binaria. Este convertidor admite null, booleanos, strings, números, arrays, mapas con claves de texto, datos binarios, marcas de tiempo, enteros con y sin signo de 64 bits y valores de extensión mediante envoltorios JSON explícitos.

¿Cuándo usar MessagePack?

Usa MessagePack cuando ambos extremos implementen versiones compatibles y acuerden el significado de las marcas de tiempo y los códigos de extensión. Conserva los envoltorios $binary, $numberLong, $uint64, $date y $messagePackExt al pasar valores por JSON; de lo contrario, se perderá la información de tipo.

MessagePack en JavaScript

import { encode, decode } from '@msgpack/msgpack';

const value = { hello: 'world' };
const bytes = encode(value);
const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');

console.log(hex);
// Output: 81a568656c6c6fa5776f726c64

console.log(decode(bytes));
// Output: { hello: 'world' }
				

MessagePack en Go

package main

import (
	"fmt"

	"github.com/vmihailenco/msgpack/v5"
)

func main() {
	value := map[string]any{"hello": "world"}
	encoded, _ := msgpack.Marshal(value)
	fmt.Printf("%x\n", encoded)
	// Output: 81a568656c6c6fa5776f726c64

	var decoded map[string]any
	_ = msgpack.Unmarshal(encoded, &decoded)
	fmt.Println(decoded["hello"])
	// Output: world
}
				

MessagePack en PHP

<?php
require 'vendor/autoload.php';

use MessagePack\MessagePack;

$value = ['hello' => 'world'];
$encoded = MessagePack::pack($value);
echo bin2hex($encoded) . PHP_EOL;
// Output: 81a568656c6c6fa5776f726c64

$decoded = MessagePack::unpack($encoded);
echo $decoded['hello'] . PHP_EOL;
// Output: world