I migliori convertitori da JSON a Markdown nel 2026: confrontati e testati
8 settembre 2026 · 26 min di lettura
JSON non ha titoli. Non ha nemmeno paragrafi, niente grassetto, nessuna tabella e nessuna lista nel senso in cui Markdown intende la parola. Ha oggetti, array, stringhe, numeri, booleani e null, e questo è tutto il vocabolario. Markdown ha titoli, paragrafi, liste, tabelle e blocchi di codice. Niente in nessuna delle due specifiche dice quale del primo insieme diventa quale del secondo, quindi ogni convertitore da JSON a Markdown si è inventato una risposta, e le risposte differiscono. Questa è la vera differenza tra gli strumenti in questa pagina — non la velocità, non la licenza, ma cosa ognuno ha deciso che i tuoi dati dovrebbero sembrare.
In breve
Scegli in base alla forma del tuo file, non in base all'elenco di funzioni dello strumento. Un array di oggetti piatti — la forma che ha la maggior parte delle risposte API e degli export — è l'unica forma su cui una tabella Markdown è onesta, e quasi tutto qui la tabellerà. Gli oggetti annidati sono dove gli strumenti divergono: alcuni appiattiscono le chiavi in nomi di colonna con i punti, alcuni trasformano ogni livello in un titolo finché non finiscono i livelli di titolo, alcuni rinunciano e stampano JSON. JSON Lines — un record per riga, che è di solito cos'è un export di log — non è JSON valido, quindi metà di questi strumenti rifiuta il file a priori. Un convertitore da browser prende le decisioni di forma per te e ti dice quali sono; jq, Miller e jtbl ti lasciano deciderle tu sulla riga di comando; pandas è la risposta dentro uno script Python.
Perché "converte JSON" non ti dice quasi niente
Convertire Markdown in HTML è una traduzione tra due formati di documento che sono ampiamente d'accordo su cosa sia un documento. Convertire JSON in Markdown non è affatto una traduzione. È un'interpretazione, e lo strumento sta indovinando l'intento. {"name": "Ada", "roles": ["admin", "billing"]} potrebbe ragionevolmente essere un titolo chiamato Name con un paragrafo sotto, un'etichetta in grassetto e un valore, una tabella a due righe, una lista a punti, oppure una lista di definizioni. Una persona ragionevole scegliebbe diversamente a seconda che quell'oggetto sia un record tra migliaia oppure l'intero file.
Quindi la prima cosa da stabilire su qualunque strumento qui è quali forme riconosce e cosa fa con ognuna. Ci sono solo quattro domande che contano. Cosa succede a un array di oggetti? Cosa succede a un array di valori semplici? Cosa succede all'annidamento, e quanto in profondità lo strumento lo segue prima di fermarsi? E cosa succede a un file che non è affatto un singolo valore JSON?
Le risposte raramente sono sulla prima pagina dello strumento, e sono l'intero prodotto. Un convertitore che trasforma ogni oggetto in una tabella chiave-valore a due colonne renderà un export di 900 record come 900 piccole tabelle. Un convertitore che tabella solo l'array di primo livello trasformerà silenziosamente in stringa un oggetto annidato dentro una cella, quindi una colonna della tua tabella altrimenti leggibile contiene {"city":"Leeds","postcode":"LS1 1AA"} in un font proporzionale senza spaziatura fissa. Entrambi gli strumenti "convertono JSON in Markdown". Nessuno dei due risultati è quello che avevi chiesto.
La seconda cosa da stabilire è dove finisce il file. Gli export JSON hanno una probabilità sproporzionata di contenere cose che non incollaresti nella casella di testo di uno straniero: record utente, storici di ordini, risposte API con token dentro, un dump di database che qualcuno ti ha mandato da guardare. Un convertitore che gira nel tuo browser o sulla tua macchina evita che questa domanda si ponga. Uno ospitato no, e la versione onesta di quel compromesso è che dipende del tutto dal file.
Confronto rapido: il bigliettino
| Strumento | Ideale per | Capacità principale | Prezzo |
|---|---|---|---|
| TransformPipe | Leggere un file JSON come documento | Tabelle, sezioni e liste scelte per forma, nel browser, niente caricato | Gratis |
| jq | Decidere tu la forma | Filtra e rimodella JSON; scrivi tu il Markdown | Gratis, MIT |
| jtbl | Una tabella in un terminale, JSON Lines incluso | Legge stdin, -m stampa una tabella Markdown |
Gratis, MIT |
Miller (mlr) |
File grandi e conversione tra formati | Legge JSON e JSON Lines, --omd scrive Markdown |
Gratis, BSD a due clausole |
| json2md | Costruire un documento, non convertirne uno | Un formato di istruzioni che emette titoli, liste, tabelle, codice | Gratis, MIT |
| pandas + tabulate | Dentro uno script Python | read_json, json_normalize, to_markdown |
Gratis, BSD a tre clausole |
| Estensioni VS Code | Il file già aperto | Conversione locale nell'editor; la qualità varia in base all'estensione | Gratis |
| TableConvert | Una tabella incollata in una scheda del browser | Array JSON in tabella Markdown con anteprima dal vivo | Gratis (verificato su tableconvert.com, l'8 settembre 2026) |
| Uno script scritto a mano | Una forma che è tua e stabile | Esattamente la mappatura che vuoi, e nessun'altra | Gratis |
| Un assistente | Un lavoro occasionale che leggerai | Capisce l'intento; eliminerà anche righe in silenzio | Varia |
| Pandoc | Non questo lavoro | Il suo lettore json è l'AST proprio di pandoc, non i tuoi dati |
Gratis, GPL |
I migliori convertitori da JSON a Markdown nel 2026
TransformPipe — ideale per leggere un file JSON come documento
Converte un file .json in Markdown nel tuo browser e sceglie una resa per forma piuttosto che applicare una regola a tutto. Non serve installazione né account, e senza aver fatto l'accesso il file non viene mai inviato da nessuna parte: viene letto, analizzato e mostrato sulla tua stessa macchina.
| Pro | Contro |
|---|---|
| Le regole di forma sono fisse e dichiarate, quindi l'output è prevedibile | Le regole sono dello strumento, non tue: nessun linguaggio di template |
| Legge JSON Lines oltre a JSON, senza che venga chiesto | Un documento alla volta piuttosto che una directory |
| Niente viene caricato quando non hai fatto l'accesso | Il lavoro lo fa il browser, quindi un file molto grande è limitato dalla macchina |
| Converte anche Markdown in HTML, e HTML, Word e CSV di nuovo in Markdown |
Prezzo: gratis. Un account aggiunge storico, condivisione e un'API, anche questi gratis.
Dettagli tecnici e funzioni
- Un array di oggetti i cui valori sono tutti scalari diventa una tabella, con le chiavi come colonne — raccolte su ogni riga nell'ordine di prima apparizione, quindi un campo che compare solo nel quarantesimo record ottiene comunque una colonna
- Un array di valori semplici diventa una lista a punti; un array di cose diverse tra loro diventa una sezione numerata ciascuna
- Un oggetto metti le sue chiavi scalari prima come etichette in grassetto, poi dà a ogni chiave annidata il suo titolo, così i fatti superficiali sono leggibili prima che comincino quelli profondi
- Oltre tre livelli di profondità, un valore viene stampato come blocco di codice
jsoncon recinzione piuttosto che come titolo, perché un titolo a profondità sette non è un titolo nullviene scritto comenullin corsivo piuttosto che saltato, e un array vuoto lo dice, perché assente e vuoto sono fatti sui dati- Le chiavi vengono titolate per la visualizzazione:
created_atecreatedAtescono entrambe come "Created at" - La stessa conversione è disponibile da un'API REST, una CLI senza dipendenze, una GitHub Action e un server MCP
Per chi è? Chiunque il cui prossimo passo sia "leggi questo" oppure "manda questo a qualcuno". Una risposta API, un export da un panello di amministrazione, un file di log che qualcuno ha attaccato a un ticket — i casi in cui vuoi i dati leggibili in un minuto e non vuoi scrivere uno script o pensare affatto alla forma.
jq — ideale per decidere tu la forma
jq è un processore JSON da riga di comando scritto in C portabile senza dipendenze runtime. Non ha output Markdown ed è comunque lo strumento che la maggior parte della gente finisce per usare, perché la parte difficile di questo lavoro non è stampare barre verticali — è selezionare i record giusti e appiattirli in righe prima.
| Pro | Contro |
|---|---|
| Rimodella qualunque JSON in qualunque altro JSON, che è il vero problema | Nessun output Markdown: costruisci tu le righe |
| Installato ovunque, nessun runtime, un binario | Un suo linguaggio proprio, e una vera curva di apprendimento |
| Si combina con ogni altro strumento tramite una pipe | Un filtro lungo in uno script shell è codice scrivi-e-scorda |
| Gestisce JSON Lines naturalmente, un valore alla volta | Ottenere la riga di intestazione e la separatrice giuste è manuale |
Prezzo: gratis, licenza MIT.
Dettagli tecnici e funzioni
- Un linguaggio di filtro su JSON: selezione, mappatura, raggruppamento, ordinamento e aritmetica
@tsve@csvproducono output delimitato, che puoi poi far passare in un passaggio da CSV a Markdown piuttosto che assemblare una tabella a mano- L'interpolazione di stringhe ti permette di emettere Markdown direttamente —
"| \(.name) | \(.email) |"per record — con l'intestazione e la separatrice scritte da te --slurpraccoglie un flusso di valori in un array unico, che è come fai comportare un file JSON Lines come uno JSON normale-rstampa stringhe grezze invece di JSON tra virgolette, che è il flag che la gente dimentica e poi si chiede perché ogni cella ha virgolette attorno
Per chi è? Chiunque conosca già jq, e chiunque il cui file richieda un filtraggio prima di richiedere una formattazione. Se la risposta comporta "solo le richieste fallite, raggruppate per giorno", ti serve jq o qualcosa di simile prima che qualunque convertitore sia rilevante. Si inserisce nello stesso punto di una pipeline di un passaggio da Markdown a HTML sulla riga di comando: uno stadio che fa una cosa al testo.
jtbl — ideale per una tabella in un terminale, JSON Lines incluso
jtbl è un piccolo strumento Python da riga di comando che legge JSON dall'input standard e lo stampa come tabella. Il suo output predefinito è una tabella da terminale, e -m rende quella tabella Markdown.
| Pro | Contro |
|---|---|
| Legge un array JSON di oggetti oppure JSON Lines, nessun flag necessario | Solo tabelle: non ha nessun'altra resa |
-m per Markdown, -c per CSV, -H per HTML |
I valori annidati devono essere appiattiti prima che li veda |
| Pensato per le pipe, quindi jq va davanti a esso | Un'installazione Python, quindi non sempre disponibile su un server |
Prezzo: gratis, licenza MIT.
Dettagli tecnici e funzioni
- L'input è JSON passato via pipe su stdin: sia un array JSON di oggetti sia JSON Lines
- I formati di output sono selezionati per flag: tabella testuale di default, Markdown, CSV, HTML oppure una tabella più elaborata a riquadri
- Pensato per stare in fondo a una pipeline
jq, che è esattamente dove la divisione del lavoro ha senso — jq decide le righe, jtbl le stampa
Per chi è? Persone che lavorano in un terminale e vogliono la tabella subito. È la strada onesta più corta da un log JSON Lines a una tabella Markdown che puoi incollare in un ticket.
Miller (mlr) — ideale per file grandi e conversione tra formati
Miller è un processore di dati da riga di comando scritto in Go senza dipendenze runtime. Legge CSV, TSV, JSON e JSON Lines, e scrive Markdown, il che lo rende il raro strumento in cui questa conversione è un formato di output incorporato piuttosto che qualcosa che assembli.
| Pro | Contro |
|---|---|
Markdown è un formato di output di prima classe (--omd) |
Un suo proprio vocabolario di verbi e flag da imparare |
Legge JSON Lines direttamente (--ijsonl), nessun raccoglimento necessario |
Orientato al record: il JSON profondamente annidato ha bisogno di essere appiattito prima |
| Fa streaming, quindi la dimensione del file non è un problema di memoria | Un'installazione, e un terminale |
| Un solo strumento per filtrare, ordinare, tagliare e stampare | Non interattivo: nessuna anteprima, nessun annulla |
Prezzo: gratis, licenza BSD a due clausole.
Dettagli tecnici e funzioni
- I formati di input includono JSON, JSON Lines, CSV, TSV e dati indicizzati per posizione;
--ijsone--ijsonlnominano quale hai --omdscrive output Markdown;--omd-alignedimbottisce le colonne a una larghezza uniforme così anche il file grezzo è leggibile- Da Miller 6.11.0, Markdown è supportato come formato di input oltre che di output (verificato su miller.readthedocs.io, l'8 settembre 2026)
- Verbi come
cut,filter,sorteheadgirano prima dello scrittore, quindi puoi restringere un grande export alle colonne che vale la pena tabellare nello stesso comando
Per chi è? Chiunque abbia un file troppo grande da apire, un export JSON Lines, oppure l'abitudine di convertire tra CSV e JSON già di suo. Se stai per installare un solo strumento da riga di comando per questo, installa questo.
json2md — ideale per costruire un documento, non convertirne uno
json2md è una libreria JavaScript che trasforma una struttura JSON specifica in Markdown. La distinzione conta più di qualunque altra cosa in questa pagina: non legge il tuo JSON. Legge una descrizione JSON di un documento Markdown, nella sua propria forma, e stampa quel documento.
| Pro | Contro |
|---|---|
| Emette una vera struttura di documento: titoli, paragrafi, liste, tabelle, codice, link | I tuoi dati devono essere trasformati prima nella sua forma di input |
| Una piccola dipendenza in un progetto Node | Non è un convertitore per JSON arbitrario, nonostante il nome |
| Estensibile con tuoi convertitori per nuovi tipi di blocco | Solo JavaScript |
Prezzo: gratis, licenza MIT.
Dettagli tecnici e funzioni
- Installato da npm e usato come funzione in Node o in un bundle
- I suoi tipi di blocco documentati coprono da
h1ah6, paragrafi, citazioni, immagini, liste ordinate e non ordinate, blocchi di codice, tabelle, link e linee orizzontali - L'input è un array di oggetti a una chiave — un titolo, poi un paragrafo, poi una tabella — quindi la mappatura dai tuoi dati a un documento è codice che scrivi tu, e la libreria gestisce l'escape e l'impaginazione
Per chi è? Sviluppatori che generano un documento Markdown da dati in un servizio Node: un report notturno, un changelog, un riassunto mandato per email a un team. È lo strumento sbagliato per guardare un file JSON che ti hanno mandato, e quello giusto per produrre un documento da record che conosci.
pandas più tabulate — ideale dentro uno script Python
pandas legge JSON in un DataFrame e scrive Markdown da esso. read_json gestisce l'analisi, json_normalize appiattisce l'annidamento in colonne, e to_markdown stampa la tabella.
| Pro | Contro |
|---|---|
| Appiattimento, filtraggio, ordinamento e tipizzazione tutto in una libreria | Una dipendenza pesante per una tabella |
json_normalize gestisce l'annidamento in modo prevedibile |
L'appiattimento moltiplica le colonne rapidamente |
| Già installato nella maggior parte del lavoro sui dati | Solo tabelle: un DataFrame non è un documento |
Prezzo: gratis. pandas ha licenza BSD a tre clausole; tabulate, che to_markdown richiede, è MIT.
Dettagli tecnici e funzioni
pandas.read_jsonper un array JSON di record;lines=Trueper JSON Linespandas.json_normalizeappiattisce le chiavi annidate in nomi di colonna con i punti, quindi un record con un oggettoaddressdiventa colonneaddress.cityeaddress.postcodeDataFrame.to_markdown()richiede il pacchettotabulatee restituisce la tabella come stringa- L'indice è incluso di default, motivo per cui la prima colonna della tua tabella è una sequenza senza nome di
0,1,2finché non passiindex=False tablefmtviene passato a tabulate, dovegithubè la tabella a barre in stile GFM epipeaggiunge i due punti di allineamento
Per chi è? Chiunque sia già in uno script Python o in un notebook. Se il JSON ha bisogno di un'analisi vera prima di diventare una tabella, questo è dove stavi andando comunque — e lo stesso ragionamento che rende Python un posto sensato per fare il passaggio da Markdown a HTML si applica anche qui.
Estensioni VS Code — ideali se il file è già aperto
Il Marketplace ha estensioni che convertono una selezione JSON in una tabella Markdown, e se il file è già nel tuo editor questa è la strada più corta che esista. È anche l'opzione in cui devi guardare l'estensione piuttosto che la categoria.
| Pro | Contro |
|---|---|
| Nessun nuovo strumento, nessun terminale, nessun caricamento | La qualità e la manutenzione variano enormemente |
| Funziona su una selezione, quindi puoi convertire parte di un file | La maggior parte gestisce un array piatto e niente altro |
| La conversione avviene localmente nell'editor | Un'estensione abbandonata è una responsabilità silenziosa |
Prezzo: gratis.
Dettagli tecnici e funzioni
- Le estensioni girano nel processo dell'editor, quindi un'estensione locale converte localmente — ma controlla, perché alcune chiamano un servizio ospitato
- La maggior parte delle implementazioni prende un array di oggetti e produce una tabella a barre; annidamento, gestione di
nulled escape delle barre sono dove differiscono - Il supporto JSON proprio di VS Code — formattazione, folding, validazione dello schema — è separato e non produce Markdown
Per chi è? Sviluppatori che convertono un frammento di passaggio. Controlla cosa fa l'estensione con un oggetto annidato e un valore contenente una barra verticale prima di fidartene con qualunque cosa manderai avanti.
TableConvert — ideale per una tabella incollata in una scheda del browser
TableConvert è un convertitore di tabelle online con una pagina per JSON a Markdown: incolla un array JSON, ottieni una tabella Markdown, modificala in una griglia se vuoi.
| Pro | Contro |
|---|---|
| Incolla e vai, con un'anteprima dal vivo | Solo tabelle, da un array di oggetti |
| La sua pagina dichiara che la conversione avviene localmente nel browser | Annidamento e JSON Lines non sono il suo lavoro |
| Una griglia intermedia tra input e output | Uno di molti siti simili, che variano su cosa fanno con i tuoi dati |
Prezzo: gratis, senza registrazione richiesta (verificato su tableconvert.com, l'8 settembre 2026).
Dettagli tecnici e funzioni
- L'input è un array JSON incollato, un file caricato, oppure una tabella estratta da una pagina
- I formati di output includono Markdown insieme agli altri formati di tabella che il sito gestisce
- La griglia intermedia ti permette di rinominare una colonna oppure cancellare una riga prima di prendere il Markdown
Per chi è? Chiunque abbia un array piatto negli appunti e un buco a forma di tabella da riempire. Per un file intero, oppure un file con struttura, un convertitore che legge forme diverse da "array di oggetti" ti farà risparmiare il rimodellamento.
Uno script scritto a mano — ideale quando la forma è tua e non cambierà
Trenta righe nel linguaggio che già usi, che mappano il tuo JSON al tuo Markdown. Chiunque faccia questa conversione più di due volte finisce qui, e per una forma interna stabile è la risposta giusta.
| Pro | Contro |
|---|---|
| Esattamente la mappatura che vuoi, e niente altro | Adesso possiedi tu i casi limite |
| Nessuna dipendenza, nella maggior parte dei linguaggi | Riscritto quando la forma cambia |
| Si adatta al tuo build, alla tua CI, alla tua nomenclatura | Nessun altro nel team conosce le regole |
Prezzo: gratis, e costa un pomeriggio.
Dettagli tecnici e funzioni
- Ogni linguaggio mainstream analizza JSON nella sua libreria standard, quindi l'analisi non è il lavoro
- Il lavoro sono le quattro decisioni: tabella, lista, sezione, oppure ripiego con recinzione — più l'escape
- Fai l'escape delle barre verticali e dei backslash nelle celle, e sostituisci gli a capo dentro una cella con
<br>, perché una riga di tabella Markdown non può contenere un'interruzione di riga - Decidi come appaiono
null,"",0,falsee una chiave mancante, e scrivilo, perché chi legge non può distinguerli da una cella vuota
Per chi è? Team con un export ricorrente e un'opinione forte su come dovrebbe leggersi. Non la persona che ha un file oggi.
Un assistente — ideale per un lavoro occasionale che leggerai
Incollare JSON in un assistente e chiedere una tabella Markdown funziona, capisce cosa significano i dati meglio di qualunque regola, ed è l'opzione meno affidabile qui per qualunque cosa non controllerai.
| Pro | Contro |
|---|---|
| Deduce cosa significano i dati, non solo la loro forma | Le righe spariscono e nessuno te lo dice |
| Gestisce con grazia record disordinati e incoerenti | I valori vengono riordinati, riformattati e sistemati |
| Nessuna installazione, nessun codice | I tuoi dati vanno a un servizio a meno che il modello non sia locale |
Prezzo: varia in base al servizio e al piano; controlla la pagina del fornitore.
Dettagli tecnici e funzioni
- Meglio usato su dati che puoi controllare a occhio: se non puoi contare le righe nell'output, non puoi verificarlo
- Un convertitore deterministico e un assistente sono in disaccordo in un modo utile — fai girare entrambi sullo stesso file e il diff ti mostra quali celle sono state "utilmente" cambiate
- Un server MCP metti una conversione deterministica dentro l'assistente, che è la versione che vale la pena avere: il modello decide cosa convertire, il convertitore decide cosa è l'output
- L'output è Markdown, che deve comunque diventare qualcosa che una persona possa apire — portare l'output di un assistente su una pagina condivisibile è un passaggio a sé
Per chi è? Chiunque abbia un caso scomodo occasionale e la pazienza di controllarlo. Nessuno con un report che va a un cliente.
Pandoc — lo strumento che non fa questo lavoro
Pandoc convertisce tra circa quaranta formati di documento e questo non è uno di essi. Il suo formato di input json è "versione JSON dell'AST nativo" — l'albero di documento proprio di pandoc serializzato come JSON, non i tuoi dati. Dargli in pasto una risposta API produce un errore, non un documento.
Per chi è? Per nessuno, per questa conversione. Pandoc è la risposta giusta per Markdown a HTML e i formati intorno, e il posto sbagliato dove cercare per JSON.
Cosa lasciano fuori le tabelle di confronto
Ogni strumento sopra produrrà Markdown da JSON. Cosa decide se il risultato è leggibile è un insieme di decisioni che nessuno di essi annuncia.
L'array di oggetti piatti è l'unica forma su cui una tabella è onesta. Una tabella ha una riga per record e una colonna per campo, quindi ha bisogno di record con gli stessi campi e valori che sono cose singole. È l'aspetto che di solito hanno una risposta API, un CSV convertito in JSON e un export di database, motivo per cui ogni strumento qui lo gestisce e motivo per cui tanti si fermano lì. Nel momento in cui un valore è esso stesso un oggetto o un array, la tabella deve mentire: o la cella contiene un frammento di JSON trasformato in stringa, oppure il conteggio delle colonne esplode, oppure i dati annidati vengono scartati. Non c'è una quarta opzione. Uno strumento che appiattisce — pandas con json_normalize, la maggior parte degli strumenti CLI con un passaggio di appiattimento esplicito — sceglie l'esplosione delle colonne, e un record con tre oggetti annidati può diventare una tabella a trenta colonne che nessuno può leggere. Uno strumento che si rifiuta di tabellare un record con valori annidati sceglie invece le sezioni, che è più lungo e leggibile.
Gli array di valori semplici sono liste, e trattarli come tabelle è l'errore classico. ["admin", "billing", "read-only"] è una lista a punti. Rendere come tabella diventa una tabella a una colonna con un'intestazione senza senso, che è peggio del JSON grezzo. Rendere come stringa unita da virgole dentro la cella di qualcun altro, va bene fino al punto in cui uno dei valori contiene una virgola.
L'annidamento deve smettere di diventare titoli da qualche parte, e lo strumento sceglie dove. Markdown ha sei livelli di titolo. JSON ne ha quanti vuole. Un convertitore che mappa la profondità sul livello di titolo finisce a sei e poi o blocca tutto quello più profondo su ######, appiattendo struttura vera in apparenti fratelli, oppure continua a generare markup più profondo che nessun renderer mostra in modo diverso. L'alternativa è fermarsi prima e stampare il sottoalbero restante come blocco di codice con recinzione, che ammette onestamente la sconfitta: la struttura è visibile, indentata, e chiaramente un dump di dati piuttosto che prosa. Il convertitore da browser qui sopra si ferma a tre livelli esattamente per questo motivo. Qualunque cosa faccia il tuo strumento, scoprilo, perché un documento i cui titoli finiscono a profondità sei ha un indice che non significa niente.
Null, vuoto, mancante e false sono quattro fatti diversi e una cella vuota. Un convertitore che salta null produce una cella indistinguibile da una chiave mancante, che è indistinguibile da una stringa vuota. In un export di ordini, "nessuno sconto applicato" e "campo sconto non presente in questo record" sono cose diverse, e chi legge, guardando due celle vuote, non può recuperare quale sia quale. Questo è il modo di fallire che rende una tabella convertita sottilmente sbagliata piuttosto che ovviamente rotta, e vale la pena controllarlo su un file che conosci prima di fidarti di uno che non conosci.
JSON Lines non è JSON valido, ed è di solito cos'è un export di log. Il formato JSON Lines è un valore JSON per riga, UTF-8, terminato da a capo. Ogni riga si analizza; il file nel suo insieme no, perché una sequenza di valori senza un array che li racchiude non è un documento JSON. Quindi sia JSON.parse sia json.loads fallisono su un file .jsonl perfettamente valido, e qualunque convertitore che chiami uno di questi senza un ripiego rifiuta il file con un errore di sintassi che punta alla riga 2. Gli strumenti differiscono nettamente qui: Miller e jtbl leggono JSON Lines nativamente, pandas ha bisogno di lines=True, jq vuole --slurp per farne un array, e un convertitore da browser che ricade sull'analisi riga per riga legge il file senza che gli venga detto. Se i tuoi dati vengono da una pipeline di log, una coda di messaggi o docker logs, questo è la prima cosa da testare e quella con più probabilità di fermarti.
Barre verticali, backslash e a capo dentro i valori rompono la tabella che hai appena ottenuto. Un carattere barra verticale termina una cella in una tabella Markdown ovunque comparisca, quindi un valore come error | retrying divide una cella in due e sposta il resto della riga. Un a capo dentro un valore non può essere espresso affatto in una riga di tabella — l'unica via è <br>, che è HTML nel tuo Markdown. Qualunque convertitore che costruisca tabelle unendo stringhe senza fare l'escape produrrà una tabella che si rende male esattamente per le righe che contengono i dati interessanti, che è un caso specifico del problema generale delle tabelle che sopravvivono a una conversione.
L'ordine delle chiavi è l'unico ordine che hai, e non è significativo. Gli oggetti JSON non hanno un ordine di chiave definito nella specifica, anche se ogni implementazione pratica preserva l'ordine nel file. I convertitori quindi emettono le colonne nell'ordine in cui vedono per la prima volta le chiavi, il che significa che l'ordine delle colonne della tua tabella è un incidente di chiunque abbia scritto il serializzatore. Peggio, se record successivi portano un campo che il primo record non aveva, un convertitore che legge solo il primo oggetto per la sua intestazione scarta silenziosamente quella colonna per ogni riga. Raccogliere le chiavi da tutti i record è il comportamento corretto e non quello universale.
Numeri, date e identificatori smettono di essere se stessi. Markdown non ha tipi. Un intero lungo resta leggibile; un float come 0.30000000000000004 arriva esattamente come JSON lo ha conservato; un timestamp ISO resta un timestamp ISO a meno che lo strumento non decida di renderlo più bello. Uno zero iniziale in un codice prodotto sopravvive se era una stringa e scompare se era un numero. Niente di tutto ciò è colpa del convertitore e tutto finisce nel tuo documento, quindi una tabella convertita è un'istantanea per la lettura, non un formato di interscambio dati. Se qualcuno ci deve calcolare sopra, mandagli il JSON.
Come scegliere
- Guarda il tuo file prima di guardare gli strumenti. Aprilo e rispondi a una domanda: è un array di record piatti, oppure un documento annidato? Se è il primo, quasi tutto qui funziona e dovresti scegliere in base alla comodità. Se è il secondo, la maggior parte di questi strumenti produrrà qualcosa di illeggibile e te ne serve uno che renda sezioni piuttosto che uno che renda tabelle.
- Testa il caso JSON Lines se c'è qualunque probabilità che si presenti. Un file
.jsonda un'applicazione è di solito un singolo valore; un file.jsono.jsonlda un log, una coda o un export in blocco è di solito un valore per riga. Convertire con l'assunzione sbagliata ti dà nel migliore dei casi un errore di analisi e nel peggiore solo il primo record. - Decidi se l'output serve per leggere o per elaborare. Una tabella Markdown è un documento. Se il passo successivo è un foglio di calcolo o uno script, converti in CSV invece e salta il giro a vuoto — perderai i tipi in entrambi i casi, e almeno il CSV lo ammette.
- Conta le installazioni contro il numero di volte che lo farai. Un file oggi non giustifica un gestore di pacchetti. Un report notturno non giustifica una scheda del browser e una persona che ci sta dentro. Sbagliare questo al contrario è come un team finisce con un passaggio di conversione non documentato che gira solo su un laptop.
- Controlla cosa è successo alle righe scomode, non alle prime tre. Trova un record con un null, un oggetto annidato, un valore contenente una barra verticale, e un campo che gli altri record non hanno. Convertilo e leggi l'output. Ogni fallimento descritto in questa pagina si mostra in quel singolo test, e richiede due minuti.
Conclusione
Non c'è un modo corretto di trasformare JSON in Markdown, il che significa che il miglior convertitore da JSON a Markdown è quello le cui decisioni corrispondono al file che hai davanti. Quando la forma che hai è una lista di record, la strada della tabella è quella da leggere. Per un array di record piatti, scegli in base alla comodità: una scheda del browser, una pipe da terminale, oppure tre righe di pandas. Per un documento annidato che devi davvero leggere, scegli uno strumento che renda sezioni e liste piuttosto che forzare tutto in una tabella, e controlla dove smette di trasformare la profondità in titoli. È quello che fa la conversione da JSON a Markdown di TransformPipe nel browser, gratis, con le regole fisse e niente caricato quando non hai fatto l'accesso. Per qualunque cosa ricorrente, Miller oppure una pipeline jq in uno script sopravvivranno a qualunque cosa tu costruisca a mano.
Domande frequenti
Qual è il miglior convertitore gratuito da JSON a Markdown?
Per un file che vuoi leggere subito, un convertitore lato browser è la migliore opzione gratuita: nessuna installazione, nessun caricamento, e gestisce forme diverse da un array piatto. Sulla riga di comando, Miller e jtbl sono entrambi gratuiti e open source ed entrambi scrivono tabelle Markdown direttamente.
Come convertire JSON in una tabella Markdown?
Se il tuo JSON è un array di oggetti con valori scalari, qualunque strumento qui lo farà: incollalo in un convertitore da browser, passalo per una pipe con jtbl -m, esegui mlr --ijson --omd cat, oppure chiama to_markdown() su un DataFrame pandas. Se gli oggetti contengono oggetti o array annidati, appiattiscili prima oppure accetta che la tabella conterrà JSON trasformato in stringa in alcune celle.
Posso convertire JSON annidato in Markdown?
Sì, ma non in una tabella. JSON annidato converte in modo sensato in titoli e sezioni, con ogni livello di annidamento che diventa un livello di titolo finché il convertitore non finisce le opzioni — sei è il limite che Markdown gli dà, e la maggior parte degli strumenti si ferma prima e stampa la profondità restante come blocco di codice con recinzione. Controlla dove il tuo convertitore traccia quella linea prima di convertire un file profondamente annidato.
Perché il mio file JSON non si converte?
Più spesso perché è JSON Lines piuttosto che JSON: un valore JSON valido per riga, cosa che il file nel suo insieme non è. Un parser a cui viene dato quel file fallisce sulla seconda riga. Dì al tuo strumento che è delimitato per riga — lines=True in pandas, --ijsonl in Miller, --slurp in jq — oppure usa un convertitore che ricade da sé sull'analisi riga per riga.
Convertire JSON in Markdown fa perdere dati?
Fa perdere i tipi, e può far perdere distinzioni. Markdown non ha nozione di un numero, una data o un null, quindi tutto diventa testo, e un convertitore che rende null come cella vuota lo ha reso indistinguibile da un campo mancante o da una stringa vuota. Tratta il Markdown come qualcosa da leggere e conserva il JSON come il record.
Pandoc può convertire JSON in Markdown?
No, non il tuo JSON. Il formato di input json di Pandoc è il suo proprio AST di documento serializzato come JSON, quindi legge solo file che pandoc stesso ha prodotto. È lo strumento giusto per convertire tra formati di documento e quello sbagliato per i dati.
Dovrei usare jq oppure un convertitore?
Entrambi, di solito. jq serve per scegliere e rimodellare i record — filtrare, raggruppare, appiattire, selezionare colonne — e un convertitore serve per stamparli. Un filtro jq che assembla anche Markdown a mano funziona e diventa rapidamente ingestibile, quindi lascia le barre verticali e l'escape a qualcosa il cui lavoro è esattamente quello.