MessagePack a JSON
Decodifica MessagePack en hex o base64 a JSON legible. Pega los bytes y obtén el objeto: todo en el navegador, nada se sube.
Entrada
Salida
¿Qué es MessagePack a JSON?
Tu sidecar de gRPC registra el cuerpo de la petición como una cadena hex larga y necesitas leer realmente lo que hay dentro. O Redis devolvió un valor que el servicio anterior guardó como msgpack y la terminal te muestra \x82\xa7orderId\xa8ORD-7421. MessagePack es un formato binario compacto: ideal para la red, ilegible en una línea de log. Esta página toma el volcado en hex o base64 y te devuelve el JSON que representa.
La decodificación sigue la especificación oficial del formato MessagePack mediante la librería JavaScript @msgpack/msgpack. Los maps se vuelven objetos, los arrays se vuelven arrays, los enteros y floats decodifican directamente a números JSON, y el resultado se imprime en formato bonito según RFC 8259. Hex con prefijos 0x, escapes \x, espacios o comas se parsean sin problema, y si tu entrada es base64 (según RFC 4648) lo detectamos automáticamente.
Sin subidas, sin backend, sin logs. La decodificación corre en tu navegador como un simple Uint8Array: cierra la pestaña y los bytes desaparecen.
Cómo usar MessagePack a JSON
Pega, lee, copia. No hay botón de Convertir: el panel derecho se actualiza mientras escribes, con un debounce de 300 ms para no recalcular en cada tecla.
Pega el hex o base64
Suelta los bytes de MessagePack en el editor izquierdo. Acepta cualquier formato: hex puro (82a7...), hex con espacios (82 a7 6f), literales de bytes en Python con \x, o un blob en base64. Pulsa Ejemplo para cargar un payload de seguimiento de pedido que decodifica a un objeto real.
82a76f72646572496441 4f52442d3734323120a574 6f74616c cb4056600000000000Ese fragmento es parte de un payload de Order: orderId, total, items, customer. Tras decodificar recuperas la estructura completa como JSON.
Lee el JSON a la derecha
El panel derecho re-decodifica con cada cambio. Si los bytes son MessagePack válido ves el objeto. Si están truncados, con basura al final, o son otro formato (CBOR, BSON), el panel muestra el error del parser, normalmente suficiente para localizar dónde está mal la entrada.
Copia lo que necesites
Pulsa el botón Copiar en la parte de salida para llevarte el JSON. Pégalo en una fixture de test, en un ticket de bug, o pásalo por nuestro Formateador de JSON si lo quieres formateado de otra manera. Para ir en la dirección contraria (objeto → msgpack) usa JSON a MessagePack.
Cuándo lo vas a usar de verdad
Leer el cuerpo de un log de gRPC o sidecar
Un sidecar de service mesh vuelca los cuerpos de las peticiones en hex. El cuerpo es msgpack porque así lo serializa el servicio que lo emite. Pega el hex, ve el objeto, descubre que la llamada llevaba orderId: "ORD-7421" y total: 89.50 en lugar de adivinar.
Inspeccionar un valor de Redis
Guardaste un objeto en Redis con un codec de msgpack para ahorrar espacio. Ahora quieres saber qué hay en session:42 sin escribir un script. Haz GET, copia el valor (la mayoría de clientes lo muestran en hex o base64), pégalo aquí.
Decodificar una entrada de caché
Las cachés que apuntan a payloads pequeños (MessagePack, FlatBuffers, a veces protobuf puro) están por todas partes. Cuando el blob cacheado es msgpack y necesitas compararlo con el JSON en vivo, este es el camino más rápido para una comparación justa.
Verificar qué está enviando un cliente
Escribiste un cliente móvil que codifica el cuerpo con msgpack para ahorrar ancho de banda. Detectas una regresión. Captura los bytes reales (Charles, mitmproxy, pestaña de red), pega y confirma que los nombres de campo y valores cuadran con el esquema que espera tu servidor. Cliente Ava Chen, items SKU-101 × 2: sí o no.
Preguntas frecuentes
¿Mis bytes se suben a algún sitio?
No. La decodificación es JavaScript puro en tu navegador: la librería @msgpack/msgpack lee la entrada como Uint8Array, recorre el formato y renderiza el objeto resultante como JSON. No hay fetch, ni analítica sobre la entrada, nada sale de la pestaña. Trátalo igual que cualquier herramienta CLI local.
Hex o base64, ¿da igual lo que pegue?
Cualquiera vale. La herramienta intenta hex primero (porque hex con prefijos 0x o \x, espacios o comas es lo más típico en logs) y cae a base64 si la entrada no es hex válido. Si tienes un literal de bytes de Python b'\x82\xa7order', también se decodifica: el envoltorio b'...' se quita y los escapes se expanden.
¿Por qué la salida muestra los timestamps con un formato raro?
MessagePack tiene una extensión de timestamp que la librería decodifica a un Date de JS. Al stringificarlo a JSON se convierte en una cadena ISO 8601. Si ves algo como "2026-05-05T12:34:56.000Z" en la salida, es un timestamp real que el codificador metió, no un bug.
¿Y si la entrada es parcialmente válida?
El decodificador lee el formato byte a byte. Si un prefijo de longitud dice "lo siguiente es un string de 16 bytes" y solo quedan 8, lanza un error de parseo. El mensaje de error en el panel derecho suele indicarte qué token de tipo falló y dónde, normalmente suficiente para detectar un pegado truncado o un byte suelto.
¿Soporta blobs binarios (la familia bin)?
Sí. bin 8/bin 16/bin 32 vuelven como instancias de Uint8Array. JSON no tiene tipo nativo de bytes, así que se renderizan como {"0":1,"1":2,...} al stringificar. Si necesitas concretamente base64 para los campos bin, decodifica aquí primero y luego transforma con nuestra herramienta JSON a Base64.
¿Cómo se compara con protobuf o CBOR?
MessagePack no tiene esquema (las claves van en los bytes), CBOR es similar pero con más tipos y otra codificación, y protobuf necesita un esquema .proto para decodificar siquiera. Si tus bytes son protobuf, esta herramienta fallará: prueba nuestra página Protobuf a JSON. Si son CBOR, el formato es parecido pero no idéntico, así que necesitas un decodificador específico de CBOR.
Otras herramientas de MessagePack
Herramientas de MessagePack que combinan bien con esta — para ir en la otra dirección, validar o simplemente mirar los bytes: