Input

Output

Cos'è Da MessagePack a JSON?

Il tuo sidecar gRPC logga il body della richiesta come una lunga stringa hex e tu hai bisogno di vedere davvero cosa c'è dentro. Oppure Redis ha restituito un valore che il servizio precedente aveva salvato come msgpack e il terminale ti mostra \x82\xa7orderId\xa8ORD-7421. MessagePack è un formato binario compatto — ottimo sulla rete, illeggibile in una riga di log. Questa pagina prende il dump in hex o base64 e ti restituisce il JSON che rappresenta.

La decodifica segue la specifica ufficiale del wire-format MessagePack tramite la libreria JavaScript @msgpack/msgpack. Le map diventano oggetti, gli array restano array, int e float vengono decodificati direttamente in numeri JSON, e il risultato viene formattato secondo RFC 8259. Hex con prefissi 0x, escape \x, spazi o virgole si parsano senza problemi — e se l'input è base64 (per RFC 4648) lo rileviamo automaticamente.

Niente upload, niente backend, niente log. La decodifica gira nel tuo browser come un semplice Uint8Array — chiudi la tab e i byte spariscono.

Come usare Da MessagePack a JSON

Incolla, leggi, copia. Non c'è un pulsante Converti — il pannello di destra si aggiorna mentre digiti, con un debounce di 300 ms così non si scatena a ogni tasto.

1

Incolla l'hex o il base64

Butta i byte MessagePack nell'editor di sinistra. Va bene tutto — hex puro (82a7...), hex con spazi (82 a7 6f), byte literal Python con \x, o un blob base64. Premi Esempio per caricare un payload di tracking ordine che decodifica in un oggetto reale.

82a76f72646572496441 4f52442d3734323120a574 6f74616c cb4056600000000000

Quel frammento è parte di un payload Order — orderId, total, items, customer. Dopo la decodifica recuperi tutta la struttura come JSON.

2

Leggi il JSON a destra

Il pannello di destra ridecodifica a ogni cambiamento. Se i byte sono MessagePack valido vedi l'oggetto. Se sono troncati, riempiti di spazzatura, o in realtà un altro formato (CBOR, BSON), il pannello mostra il messaggio di errore del parser — di solito basta a capire dov'è il problema nell'input.

3

Copia ciò che ti serve

Premi il pulsante Copia sul lato output per prendere il JSON. Buttalo in una fixture di test unitario, incollalo in un ticket di bug, oppure passalo nel nostro Formattatore JSON se vuoi un'altra formattazione. Per andare nel verso opposto (oggetto → msgpack), usa Da JSON a MessagePack.

Quando ti servirà davvero

Leggere il body di un log gRPC o sidecar

Un sidecar di service mesh dumpa i body delle richieste in hex. Il body è msgpack perché è così che il servizio a monte serializza. Incolli l'hex, vedi l'oggetto, scopri che la chiamata aveva orderId: "ORD-7421" e total: 89.50 invece di tirare a indovinare.

Ispezionare un valore Redis

Hai salvato un oggetto in Redis con un codec msgpack per risparmiare spazio. Ora vuoi sapere cosa c'è in session:42 senza scrivere uno script. Esegui GET, copi il valore (la maggior parte dei client lo mostra in hex o base64), incolli qui.

Decodificare una entry di cache

Le cache che puntano ai payload piccoli — MessagePack, FlatBuffers, a volte protobuf grezzo — sono ovunque ormai. Quando il blob in cache è msgpack e devi confrontarlo con il JSON live, questa è la strada più veloce per un confronto a parità di condizioni.

Verificare cosa sta inviando un client

Hai scritto un client mobile che codifica il body della richiesta in msgpack per risparmiare banda. Trovi una regressione. Catturi i byte reali (Charles, mitmproxy, tab di rete), incolli e confermi che nomi di campo e valori coincidono con lo schema che il tuo server si aspetta. Cliente Ava Chen, articoli SKU-101 × 2 — sì o no.

Domande comuni

I miei byte vengono caricati da qualche parte?

No. La decodifica è puro JavaScript nel tuo browser — la libreria @msgpack/msgpack legge l'input come Uint8Array, percorre il wire format e renderizza l'oggetto risultante come JSON. Niente fetch, niente analytics sull'input, niente lascia la tab. Trattalo come qualsiasi tool CLI locale.

Hex o base64 — fa differenza cosa incollo?

Vanno bene entrambi. Il tool prova prima l'hex (perché l'hex con prefissi 0x o \x, spazi o virgole è la forma di log più comune), e ripiega su base64 se l'input non è hex valido. Se hai un byte literal Python b'\x82\xa7order', anche quello viene decodificato — il wrapping b'...' viene rimosso e gli escape espansi.

Perché l'output mostra timestamp in modo strano?

MessagePack ha una extension type per i timestamp che la libreria decodifica in un Date JS. Stringificato in JSON diventa una stringa ISO 8601. Se vedi una stringa come "2026-05-05T12:34:56.000Z" nell'output, è un timestamp reale che l'encoder ha incorporato — non è un bug.

E se l'input fosse parzialmente valido?

Il decoder legge il wire format byte per byte. Se un prefisso di lunghezza dice "il prossimo è una stringa di 16 byte" e ne restano solo 8, lancia un errore di parsing. Il messaggio di errore nel pannello a destra di solito ti dice quale token di tipo è fallito e più o meno dove — di solito basta a individuare un incolla troncato o un byte di troppo.

Gestisce i blob binari (la famiglia bin)?

Sì. I valori bin 8/bin 16/bin 32 tornano come istanze di Uint8Array. JSON non ha un tipo nativo per i byte, quindi vengono renderizzati come {"0":1,"1":2,...} al momento dello stringify. Se ti serve specificamente base64 per i campi bin, decodifica qui prima e poi trasforma con il nostro tool Da JSON a Base64.

Come si confronta con protobuf o CBOR?

MessagePack è schemaless (le chiavi vivono nei byte), CBOR è simile ma ha più tipi e un encoding diverso, e protobuf richiede uno schema .proto anche solo per decodificare. Se i tuoi byte sono protobuf, questo tool fallisce — prova invece la nostra pagina Da Protobuf a JSON. Se sono CBOR, il wire format è simile ma non identico, quindi ti serve un decoder specifico per CBOR.

Altri tool MessagePack

Tool MessagePack che si abbinano bene a questo — per andare nel senso opposto, validare o solo guardare i byte: