SS Toolbox
SS Toolbox
Tutti i dati vengono elaborati localmente

YAML in JSON e JSON in YAML — convertitore che non conserva i commenti

Converti configurazioni YAML di Kubernetes, docker-compose o GitHub Actions in JSON e viceversa nel browser. È una nuova serializzazione, non un andata e ritorno senza perdite: commenti, ancore e documenti multipli vanno persi, e i valori senza virgolette seguono le regole di tipizzazione YAML.

Cosa fa questo convertitore e cosa perde

  1. Due direzioni, un pulsante ciascuna

    YAML → JSON e JSON → YAML sono azioni separate. Il risultato sovrascrive l'altro editor e non viene mai unito al testo esistente.

  2. I commenti vanno sempre persi

    I commenti YAML vengono scartati durante l'analisi e lo YAML generato non ne contiene mai. JSON non ha comunque una sintassi per i commenti.

  3. Le ancore vengono espanse, i documenti multipli falliscono

    Le coppie &anchor / *alias vengono risolte in oggetti duplicati. Un file con più documenti --- viene rifiutato invece di essere unito.

  4. I valori seguono la tipizzazione YAML 1.2

    1.0 senza virgolette diventa 1, 2024-01-01 diventa un timestamp ISO e .inf / .nan diventano null. Usa le virgolette per mantenere una stringa.

  5. Esecuzione locale, con scelta file e download

    I file vengono letti nel browser e nulla viene caricato. Non c'è un limite rigido di dimensione, ma un file molto grande blocca la scheda durante la conversione.

Domande frequenti sulla conversione YAML ↔ JSON

La conversione è bidirezionale?

Sì: un pulsante per YAML → JSON e uno per JSON → YAML. Ogni direzione però serializza di nuovo i dati, quindi commenti, formattazione e ancore non vengono conservati. Lo YAML generato usa un'indentazione di 2 spazi e va a capo sulle stringhe lunghe a 80 colonne; non ci sono opzioni di indentazione o ordinamento.

Si possono conservare i commenti?

No. Il parser YAML scarta i commenti e lo YAML generato non ne aggiunge; JSON non ha una sintassi per i commenti. Tieni il file commentato come fonte di verità e considera l'output come dati derivati.

Sono supportati ancore, alias e più documenti?

Ancore e alias vengono risolti e scritti come valori duplicati. I documenti multipli (più blocchi ---) vengono rifiutati con «expected a single document in the stream»; separali prima. Riguarda i manifest Kubernetes che raggruppano più risorse in un file.

Perché version: 1.0 diventa 1 e yes resta una stringa?

Gli scalari senza virgolette vengono tipizzati secondo le regole YAML: 1.0 è un numero, quindi viene stampato come 1. js-yaml segue YAML 1.2, dove yes / no / on / off sono stringhe normali, quindi la chiave on: di GitHub Actions resta una stringa. Metti le virgolette quando il tipo deve restare una stringa.

Come vengono gestiti date, interi grandi e null?

Una data senza virgolette come 2024-01-01 viene interpretata come timestamp e in JSON diventa 2024-01-01T00:00:00.000Z. Gli interi oltre 2^53 perdono precisione e .inf / .nan diventano null. ~, null e i valori vuoti diventano tutti null.

Funziona con file Kubernetes, docker-compose o GitHub Actions?

Lo YAML standard a documento singolo funziona, compresi questi formati. Separa prima le esportazioni Kubernetes con più documenti e ricorda che i commenti vanno persi: non usare il risultato come file di configurazione da committare.

Cosa succede con dimensioni dei file e privacy?

Tutto avviene nel browser e nessun file viene caricato. Non c'è un limite configurato, ma la conversione è sincrona sul thread principale, quindi file di diversi MB possono bloccare la pagina.

Strumenti correlati
SponsorMindElixir