Convertitore YAML in JSON
Incolla YAML e ottieni JSON istantaneamente nel browser. Supporta manifest K8s, specifiche OpenAPI e values Helm. 100% privato, nessun upload, nessun server.
Opzioni · 2 spazi
Cos'è JSON?
JSON (JavaScript Object Notation) è un formato leggero di scambio dati basato su testo, standardizzato come RFC 8259 ed ECMA-404. Supporta sei tipi di dati — stringhe, numeri, booleani, null, array e oggetti — con una sintassi rigorosa e minimale che praticamente ogni linguaggio di programmazione, API e toolchain può analizzare nativamente. Mentre YAML è il formato preferito per i file di configurazione scritti dagli umani (manifest Kubernetes, GitHub Actions, playbook Ansible, values Helm), JSON è il formato universale leggibile dalle macchine per API, script di automazione ed elaborazione dati programmatica.
Convertire YAML in JSON è quindi uno dei compiti più comuni nel DevOps e nello sviluppo backend — hai un file di configurazione YAML ma hai bisogno di JSON per alimentare una REST API, effettuare query con jq o elaborarlo con strumenti JavaScript.
Questo strumento ha quattro differenziatori importanti rispetto ai tipici convertitori online:
**1. Gestione del YAML multi-documento.** YAML supporta più documenti in un singolo stream separati da --- (il marcatore di inizio documento). Molti file YAML reali — inclusi alcuni manifest Kubernetes e playbook Ansible — contengono più documenti. Questo strumento usa parseAllDocuments dalla libreria eemeli/yaml con opzioni { version: '1.2', merge: true } e restituisce il primo documento come JSON, comunicando chiaramente cosa è stato preso. Se hai bisogno di tutti i documenti, dividi su --- e converti ciascuno singolarmente.
**2. Espansione di ancore e alias.** Le ancore YAML (&nome) e gli alias (*nome) permettono il riuso di blocchi di dati — una potente funzionalità YAML senza equivalente in JSON. Questo strumento espande completamente tutte le ancore e gli alias (incluse le chiavi merge: <<: *anchor) così l'output JSON contiene dati completi e auto-contenuti senza riferimenti. Questa è sempre la trasformazione corretta perché JSON non ha sintassi di riferimento. L'espansione è gestita in modo sicuro dalla libreria eemeli/yaml, che include la protezione contro i riferimenti circolari. Vedi come si confronta con la direzione inversa su Convertitore JSON in YAML.
**3. Perdita dei commenti — trasparenza educativa.** YAML supporta i commenti #, che vengono usati frequentemente nei manifest Kubernetes, nei values Helm e nei playbook Ansible per documentare l'intento. JSON non ha sintassi per i commenti, quindi i commenti vengono persi definitivamente durante la conversione. Questo non è un bug — è una differenza fondamentale di formato. Questo strumento lo rende esplicito così sai cosa aspettarti. Se hai bisogno di preservare le annotazioni, codificale come campi JSON (chiavi _comment o un oggetto metadata dedicato) prima di convertire, o tieni YAML come fonte autorevole. Vedi il nostro approfondimento sulle differenze YAML-JSON per ulteriori informazioni sui compromessi tra formati.
**4. Privacy 100% basata su browser.** I tuoi dati YAML — che spesso contengono segreti Kubernetes, credenziali di database, values Helm con password e configurazioni di servizi interni — non lasciano mai il browser. Nessun dato viene inviato a nessun server. Puoi verificarlo nella scheda Rete del browser. Dopo aver convertito in JSON, puoi validare e formattare il risultato con il nostro Formattatore JSON prima di usarlo downstream.
La ricchezza di YAML (commenti, ancore, supporto multi-documento, scalari a blocchi) lo rende eccellente per i file di configurazione scritti dagli umani dove leggibilità e documentazione contano. La rigidità e universalità di JSON lo rendono la scelta migliore quando la macchina è il consumatore principale. Questo convertitore fa da ponte tra i due mondi: tieni la tua configurazione in YAML per la manutenibilità umana, converti in JSON quando hai bisogno di uno scambio leggibile dalle macchine.
// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';
const yamlString = `apiVersion: apps/v1
kind: Deployment`;
// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });
// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);
console.log(json);
// {
// "apiVersion": "apps/v1",
// "kind": "Deployment"
// } Funzionalità Principali
Conversione in tempo reale
L'output JSON si aggiorna istantaneamente mentre digiti o incolli YAML — nessun pulsante Converti necessario. Gli input grandi (>200 KB) passano automaticamente alla modalità manuale per mantenere il browser reattivo.
Rientro a 2 o 4 spazi
Passa tra l'indentazione a 2 e 4 spazi per l'output JSON. 2 spazi è lo standard per la maggior parte degli strumenti e delle API; 4 spazi corrisponde ad alcune guide di stile e impostazioni predefinite degli editor.
Supporto multi-documento
Gestisce stream YAML con più documenti separati da ---. Il primo documento viene convertito in JSON e restituito. Utile per file multi-risorsa Kubernetes e playbook Ansible.
Espansione di ancore e alias
Espande completamente le ancore YAML (&nome) e gli alias (*nome), incluse le chiavi merge (<<: *anchor). L'output JSON contiene dati completi e de-referenziati senza riferimenti — il comportamento corretto dato che JSON non ha equivalenti.
Privacy 100% basata su browser
Tutta la conversione gira localmente nel browser usando JavaScript. I tuoi dati YAML — inclusi segreti, credenziali e configurazioni di produzione — non vengono mai inviati a nessun server, mai registrati e mai archiviati.
Supporta file K8s, Compose, Helm e OpenAPI
Ottimizzato per casi d'uso DevOps reali: manifest Kubernetes, stack Docker Compose, values di Helm chart, workflow GitHub Actions, specifiche OpenAPI e playbook Ansible — con esempi per ciascuno.
Esempi
Kubernetes Manifest
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: production
labels:
app: my-app
version: 1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m Converti un manifest Kubernetes Deployment da YAML in JSON — utile per effettuare query con jq, inviarlo all'API Kubernetes o usarlo in pipeline Terraform e CI/CD
Docker Compose
version: '3.9'
services:
web:
image: nginx:1.25-alpine
ports:
- '80:80'
- '443:443'
environment:
NGINX_HOST: example.com
NGINX_PORT: '80'
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Converti un file Docker Compose da YAML in JSON per la manipolazione programmatica, l'uso in script di automazione o l'elaborazione con strumenti JavaScript
GitHub Actions Workflow
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test Analizza un workflow YAML GitHub Actions in JSON per interrogare campi specifici, validare la struttura o integrarsi con API che accettano JSON
OpenAPI Spec
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Manage application users
paths:
/users:
get:
summary: List users
operationId: listUsers
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{id}:
get:
summary: Get user
operationId: getUser
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email Converti una specifica OpenAPI 3.0 da YAML in JSON per i generatori di codice client, gli strumenti di test API o l'ispezione programmatica degli schema
Helm values.yaml
replicaCount: 3
image:
repository: my-app
tag: 1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: my-app.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80 Converti il file values.yaml di un Helm chart in JSON per analisi, generazione di report o uso in strumenti che richiedono configurazione JSON
Ansible Playbook
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
max_clients: 200
tasks:
- name: Ensure nginx is installed
ansible.builtin.package:
name: nginx
state: present
- name: Start nginx service
ansible.builtin.service:
name: nginx
state: started
enabled: true
- name: Copy nginx config
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify:
- Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted Analizza un playbook Ansible YAML in JSON per ispezionare la struttura dei task, fare audit delle configurazioni o integrarsi con pipeline di reporting
Come Usarlo
- 1
Incolla il tuo YAML
Inserisci o incolla i tuoi dati YAML nel campo di input qui sopra. Puoi anche cliccare su «Carica esempio» per provare un campione come un Kubernetes Deployment, un file Docker Compose o un Helm values.yaml.
- 2
Vedi l'output JSON in tempo reale
Il JSON compare istantaneamente nel pannello di output. Regola le Opzioni (rientro 2 o 4 spazi) per soddisfare i requisiti dello strumento di destinazione.
- 3
Copia o scarica
Clicca Copia per copiare il JSON negli appunti, o Scarica per salvarlo come file .json pronto per jq, chiamate API o qualsiasi strumento downstream.
Problemi YAML Comuni
Indentazione con tab
La specifica YAML proibisce i caratteri tab per l'indentazione — sono ammessi solo spazi. Se il tuo YAML è stato scritto o copiato da un editor che usa i tab, il parser lancerà un errore. Sostituisci tutta l'indentazione con tab con spazi (2 o 4 spazi per livello).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Indentazione non corrispondente
YAML usa un'indentazione coerente per definire la nidificazione. Mescolare numeri diversi di spazi all'interno dello stesso blocco (ad esempio 2 spazi a un livello e 3 a un altro) causa errori di analisi. Ogni livello deve rientrare dello stesso numero di spazi in tutto il documento.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Caratteri speciali senza virgolette
Caratteri come :, #, &, *, {, }, [, ], |, >, ! e @ hanno significati speciali in YAML. Usarli senza virgolette nei valori può causare errori di analisi o comportamenti inattesi. Metti tra virgolette i valori che contengono questi caratteri con virgolette singole o doppie.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Cicli nelle ancore
YAML tecnicamente permette ancore che fanno riferimento a se stesse (riferimenti circolari), anche se è raro in pratica. Un'ancora circolare fa sì che il parser entri in un loop di espansione infinito. La libreria eemeli/yaml rileva e lancia un errore per le ancore circolari invece di bloccarsi.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Confusione con i multi-documento
I file YAML con più separatori --- contengono più documenti. Questo strumento restituisce solo il primo documento come JSON. Se ti aspettavi dati da un documento successivo (dopo il secondo o terzo ---), non compariranno nell'output. Dividi il tuo YAML su --- e converti ogni sezione separatamente se hai bisogno di tutti i documenti.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Perdita dei commenti
YAML supporta commenti # ma JSON no. Tutti i commenti YAML vengono persi definitivamente durante la conversione — questa è una differenza fondamentale di formato, non una limitazione dello strumento. Se hai bisogno di preservare annotazioni in JSON, codificale come campo dedicato come una chiave _comment o un oggetto metadata.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Casi d'Uso Comuni
- Analisi di manifest Kubernetes
- Converti i manifest YAML Kubernetes in JSON per effettuare query con jq, inviare all'API REST Kubernetes, elaborare in data source Terraform o alimentare pipeline CI/CD che si aspettano JSON.
- Docker Compose verso strumenti JavaScript
- Analizza Docker Compose YAML in JSON per estrarre definizioni di servizi, nomi di immagini, mapping di porte e variabili d'ambiente per script di automazione, grafi di dipendenze o strumenti Node.js.
- Integrazione API GitHub Actions
- Converti i workflow YAML GitHub Actions in JSON per validare la struttura programmaticamente, estrarre definizioni di job e step, o integrarsi con API CI/CD che accettano specifiche di workflow JSON.
- OpenAPI per la generazione di codice client
- Molti generatori di codice (openapi-generator, swagger-codegen, oazapfts) accettano specifiche OpenAPI in entrambi i formati. Converti la tua specifica YAML in JSON quando uno strumento richiede specificamente input JSON o quando hai bisogno di ispezionarla con validatori JSON Schema.
- Analisi dei values Helm
- Converti il file values.yaml di Helm chart in JSON per generare report, confrontare values tra ambienti, alimentare strumenti di policy enforcement o elaborare con automazioni che si aspettano configurazione JSON.
- Migrazione della configurazione verso strumenti JSON
- Migra la configurazione dell'applicazione da YAML (comune negli strumenti di infrastruttura) a JSON per ambienti JavaScript, REST API, AWS AppConfig, Azure App Configuration o qualsiasi sistema che archivia la configurazione come JSON.
Dettagli Tecnici
- Specifica YAML 1.2 tramite parseAllDocuments con merge:true
- Il YAML viene analizzato usando la libreria eemeli/yaml (v2.8+, CVE-safe) tramite parseAllDocuments con { version: '1.2', merge: true }. Lo schema YAML 1.2 assicura che le stringhe semplici come yes e no vengano trattate come stringhe (non come booleani), rispettando la specifica YAML attuale. L'opzione merge: true espande completamente le chiavi merge delle ancore/alias (<<: *anchor) così l'output JSON contiene dati completi e de-referenziati. Il YAML multi-documento (separato da ---) restituisce il primo documento.
- Espansione di ancore e alias tramite libreria
- La libreria eemeli/yaml gestisce l'espansione di ancore (&nome) e alias (*nome) in modo sicuro, incluso il rilevamento dei riferimenti circolari. Tutti i blocchi di dati con alias — incluse le espansioni delle chiavi merge — vengono completamente inline nell'output JSON. Questa è la trasformazione corretta perché JSON non ha il concetto di riferimento o ancora. L'espansione sicura della libreria previene i loop infiniti da YAML malformato.
- Basato su browser — nessun upload, nessun server
- Tutta l'elaborazione avviene interamente nel motore JavaScript del browser. Nessun dato viene trasmesso in rete in nessun momento. Gli input più grandi di 200 KB passano automaticamente dalla modalità in tempo reale alla modalità manuale (richiedendo un clic esplicito su Converti) per mantenere il browser reattivo e prevenire il blocco del thread principale durante la serializzazione pesante.
Buone Pratiche
- Usa la sintassi compatibile con YAML 1.2 per conversioni pulite
- Scrivi il tuo YAML usando le convenzioni YAML 1.2 — metti esplicitamente tra virgolette i valori stringa yes, no, on, off, y e n (ad esempio enabled: 'yes') per evitare ambiguità. Questo strumento analizza con lo schema YAML 1.2 (quindi sono stringhe), ma gli strumenti più vecchi nella tua pipeline potrebbero usare YAML 1.1 (dove diventano booleani). Le virgolette esplicite nel YAML sorgente sono la pratica più sicura per tutti i parser.
- Metti tra virgolette i numeri grandi in YAML per preservare la precisione
- JavaScript non può rappresentare esattamente interi maggiori di 2^53 - 1 (9007199254740991). I campi Kubernetes come resourceVersion e uid sono int64 sul server e possono superare questo limite. Nel tuo sorgente YAML, metti tra virgolette questi valori (resourceVersion: '9007199254740993') così il parser li tratta come stringhe, che vengono poi preservate esattamente nell'output JSON come valori stringa.
- Valida l'output JSON prima di usarlo nelle API
- Dopo aver convertito YAML in JSON, valida il risultato prima di inviarlo a un'API, archiviarlo o elaborarlo programmaticamente. Usa il nostro Formattatore JSON per confermare che la struttura sia corretta. Questo è particolarmente importante per le chiamate API Kubernetes, le specifiche OpenAPI e qualsiasi payload validato con JSON Schema, dove un errore strutturale causa un rifiuto confuso a livello API piuttosto che al passaggio di conversione.
- Separa il YAML multi-documento prima di convertire
- Se il tuo file YAML contiene più documenti separati da --- e hai bisogno di tutti come JSON, dividi prima il file su --- e converti ogni documento singolarmente. Questo strumento prende solo il primo documento. Un approccio semplice: dividi su '\n---\n' nel tuo editor o con awk, poi incolla ogni sezione separatamente.
- Usa jq per l'elaborazione JSON downstream
- Una volta che hai JSON dal tuo YAML, jq è il modo più veloce per interrogarlo e trasformarlo dalla riga di comando. Combina questo strumento con jq: converti il tuo YAML online, incolla il JSON, poi usa jq '.spec.replicas' o jq '.services | keys' per estrarre esattamente ciò di cui hai bisogno. Per l'elaborazione in batch di molti file, usa direttamente il CLI yq con il flag -o json.
Domande Frequenti
Come converto YAML in JSON online?
Come gestisce questo strumento il YAML multi-documento (separatore ---)?
Come vengono gestiti le ancore e gli alias YAML (&anchor e *alias)?
I commenti YAML vengono preservati nell'output JSON?
Come uso questo strumento con un manifest Kubernetes?
Come aiuta questo strumento con i file Docker Compose?
Qual è la differenza tra YAML 1.1 e YAML 1.2, e quale usa questo strumento?
Perché YAML proibisce l'indentazione con tab?
I numeri grandi possono perdere precisione durante la conversione da YAML a JSON?
Come posso convertire YAML in JSON dalla riga di comando?
I miei dati YAML vengono inviati a un server quando uso questo strumento?
Esiste un limite di dimensione per l'input YAML?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Formattatore e Validatore JSON
Codifica e formattazione
Formatta, valida e abbellisci JSON direttamente nel browser. Strumento online gratuito con controllo sintassi, rilevamento errori, minifica e copia in un clic. 100% privato.
Convertitore JSON in YAML
Codifica e formattazione
Incolla JSON e ottieni YAML istantaneamente nel browser. Conversione live, K8s e Compose, rientro 2/4 spazi, virgolette Norway-safe. 100% privato.
Codificatore e Decodificatore URL con Parser URL Integrato
Codifica e formattazione
Decodifica o codifica URL in tempo reale con parser URL integrato. Doppia modalità: encodeURI e encodeURIComponent. 100% privato, nessun dato inviato a server online.
Convertitore di Basi Numeriche — Bin, Hex, Ott, Dec
Strumenti di conversione
Converti istantaneamente tra binario, esadecimale, decimale, ottale e qualsiasi base (2-36). Strumento online gratuito e privato: tutta l'elaborazione avviene nel tuo browser.
Comprimi Immagini Online — JPEG, PNG e WebP
Strumenti di conversione
Comprimi JPEG, PNG e WebP fino all'80% in meno — nel tuo browser, senza upload. Batch di 20 immagini, regola la qualità, confronta prima e dopo. Gratuito e privato.