Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti NDJSON in INI gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
NDJSON in INI
Il disallineamento è totale e vale la pena dirlo subito. Un file INI è un insieme di sezioni con nome, ognuna con righe chiave-valore piatte — la descrizione di una cosa sola, di solito una configurazione applicativa. Un file JSON delimitato da nuove righe è una sequenza di record senza nome, senza un ordine che significhi qualcosa e senza lunghezza fissa.
Non esiste una rappresentazione che soddisfi entrambi. Ciò che fa la conversione è usare l’unico nome che un record in una lista possiede, cioè il suo indice: la prima riga diventa [0], la seconda [1], e così via. È fedele, non perde nulla, e produce un file i cui nomi di sezione non portano alcun significato.
Se i record sono davvero diverse configurazioni — una per host, una per ambiente, una per cliente — allora rinominare [0] e [1] con i nomi che quelle cose hanno davvero trasforma l’uscita in un file utilizzabile, ed è tutto il lavoro. Le chiavi sotto sono già corrette.
Se i record sono dati piuttosto che configurazione, nessuna quantità di rinomina aiuta, e le sezioni numerate sono la conversione che ve lo dice. Cento sezioni chiamate come posizioni non sono un file di configurazione: sono una tabella scritta nella notazione sbagliata. CSV, JSON o un database sono quello che serve, e ognuno è a una conversione di distanza dalla stessa sorgente.
Questo trae in inganno, quindi vale la pena essere espliciti. Un file con esattamente una riga è comunque una lista di uno, e l’uscita è una sezione [0] che contiene ogni campo di quel record. Non è l’INI pulito che otterreste dallo stesso oggetto da solo.
La correzione è cambiare il formato della sorgente piuttosto che modificare l’uscita. Salvate quella singola riga con estensione .json e convertite JSON in INI invece: lì le chiavi di primo livello del record diventano le intestazioni di sezione, i valori semplici vengono scritti sopra di esse, e il file assomiglia a qualcosa scritto da una persona.
L’INI supporta le sezioni e niente dentro le sezioni. Su questa coppia quell’unico livello viene consumato dall’indice del record, quindi ogni campo di un record — compresa qualunque annidatura avesse — deve vivere nel nome della chiave.
Un record con un oggetto server contenente una porta produce una riga che legge server.port dentro la sezione numerata. Nulla viene scartato e il percorso viene conservato, ma due record con la stessa struttura annidata ora non condividono nulla strutturalmente: sono due sezioni le cui chiavi capitano a essere scritte allo stesso modo.
Un record che porta un elenco di host consentiti produce chiavi chiamate 0, 1 e 2 sotto il percorso di quel campo. Combinato con le sezioni numerate, un’uscita può finire con una riga che legge hosts.0 dentro una sezione chiamata [2], leggibile e poco elegante.
I lettori INI che supportano affatto le liste di solito si aspettano una singola riga con valori separati da virgola, e alcuni si aspettano la stessa chiave ripetuta. Nessuno dei due è ciò che produce questa conversione. Se l’applicazione ha una convenzione, unire l’array in una singola stringa nella sorgente prima di convertire produce una riga che il lettore legge nativamente.
Un true JSON viene scritto come true, un numero come le sue cifre, un null come la chiave senza nulla dopo il segno di uguale, e una stringa esattamente come era. Le virgolette appaiono solo dove il valore non tornerebbe altrimenti nel modo in cui è entrato: attorno a un valore con uno spazio a un’estremità, uno che inizia e finisce già con una virgoletta, e uno che contiene un ritorno a capo.
Un ritorno a capo dentro un valore è il caso che vale la pena nominare, perché una voce INI è una riga. Viene scritto come una barra rovesciata seguita da una n dentro le virgolette invece che come un’interruzione reale, ciò che impedisce al testo successivo di diventare righe sciolte — o, quando una di esse assomiglia a un’intestazione fra parentesi quadre, una sezione che non apparteneva a nessun record.
L’INI supporta i commenti — una riga che inizia con un punto e virgola o un cancelletto — e il lettore di questo sito li rispetta anche nella direzione opposta. Il JSON no, quindi il file convertito arriva senza alcuno.
Dato che la ragione per produrre affatto un INI è quasi sempre che una persona lo leggerà o modificherà, scrivere quelle righe è la prima modifica utile. Quali sezioni sono specifiche per ambiente, quale valore deve corrispondere a qualcosa altrove, e quale l’applicazione ignora: nulla di tutto ciò poteva essere portato dalla sorgente ed è esattamente ciò per cui esiste il formato di destinazione.
Ogni valore in un file INI è testo. Se 8080 è un numero, se true è un booleano e se 007 mantiene i suoi zeri lo decide qualunque cosa legga il file — Python configparser lo rende esplicito con getint e getboolean, e accetta anche yes, on e 1 come vero.
È una perdita rispetto alla sorgente, dove i tipi erano registrati. Di solito non è un problema, perché un’applicazione che legge INI già sa cosa aspettarsi da ogni impostazione. Dove conta davvero sono gli identificativi con zeri iniziali, e la correzione vive nel codice di lettura piuttosto che nel file.
La regola onesta per questa coppia: se l’uscita ha più di una manciata di sezioni numerate e non potete dare a ognuna un nome vero, la conversione ha risposto a una domanda diversa da quella che avete posto. L’INI descrive una cosa sola; una lista di record non è una cosa sola.
Le alternative dallo stesso file sono tutte a un clic e tutte migliori per quel caso. CSV o un foglio di calcolo se una persona guarderà i record, SQL o Parquet se una macchina li interrogherà, TOML se ciò che volevate davvero era una lista di record in un file di configurazione, dato che ha un costrutto array-di-tabelle che l’INI semplicemente non ha.
La conversione è JavaScript ordinario in questa scheda del browser. Niente viene caricato, non c’è account o coda, e il livello gratuito accetta fino a 100 MB — un limite che nessun file di configurazione ha mai raggiunto.
Conta più di quanto suggerisca la dimensione del file. I dump di impostazioni portano stringhe di connessione, endpoint API, nomi host interni e, più spesso di quanto qualcuno ammetta, una credenziale che doveva essere una variabile d’ambiente. Inviarne uno a un convertitore sull’infrastruttura di qualcun altro per togliergli le parentesi graffe sarebbe un pessimo affare a qualsiasi prezzo.
| NDJSON | INI | |
|---|---|---|
| Nome completo | Newline-Delimited JSON | Configurazione INI |
| Estensione del file | .ndjson, .jsonl | .ini, .cfg, .conf |
| Tipo di media | application/x-ndjson | text/plain |
| Prima pubblicazione | 2013 | 1985 |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Vecchio, ancora letto ovunque |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | JSON, CSV | TOML, YAML |
I programmi di sempre non coincidono: NDJSON si apre in jq e pandas, INI in Notepad e Visual Studio Code, quindi chi riceve il risultato ha bisogno di uno del secondo gruppo.
I due puntano a lavori diversi: NDJSON a spostare dati fra programmi e lo streaming, INI a la modifica. Vale la pena valutarlo prima, perché il motivo per cui esiste uno è di solito il motivo per cui l'altro risulta scomodo.
INI risale al 1985. Notepad e Visual Studio Code lo leggono.
INI è stato pubblicato nel 1985 e NDJSON nel 2013. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.
No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file.
Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta.
NDJSON e INI descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. L’INI non prevede annidamento. Tutto quello che sta sotto un livello viene appiattito in chiavi separate da punti.
Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito INI Configuration.