Utilia

Convertidor de TOML a JSON

Converteix TOML a JSON i JSON a TOML al navegador. Admet taules, matrius de taules, dates i enters de 64 bits. No es puja res a cap servidor.

Conversió

Com convertir TOML a JSON

  1. Tria la direcció: TOML → JSON (la predeterminada) o JSON → TOML.
  2. Enganxa les dades, o fes clic a Obre un fitxer per carregar un fitxer .toml o .json (fins a 10 MB).
  3. Per a TOML → JSON, tria el Sagnat (2 o 4 espais) i decideix si marques Enters grans com a cadenes. Per a JSON → TOML, mantén o desmarca Omet els valors nuls.
  4. Marca Ordena les claus si vols que cada taula quedi ordenada alfabèticament.
  5. El resultat s’actualitza mentre escrius; Converteix el torna a executar quan vulguis. Els errors mostren la línia i la columna del problema.
  6. Copia o baixa el resultat. Inverteix la direcció mou la sortida a l’entrada per tornar-la a convertir.

TOML i JSON, un al costat de l’altre

TOML (Tom’s Obvious Minimal Language) és el format de configuració de Cargo.toml a Rust, pyproject.toml a Python, els llocs fets amb Hugo i Netlify i moltes eines de línia d’ordres. Està pensat perquè les persones el llegeixin i l’editin, i es correspon directament amb un arbre de tipus JSON format per taules (objectes), matrius i valors.

[package]
name = "demo"
version = "0.1.0"

[[bin]]
name = "cli"

es converteix en

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Una capçalera [taula] es converteix en un objecte JSON, i les claus amb punts com a.b.c = 1 es converteixen en objectes imbricats.
  • Una matriu de taules, [[bin]], es converteix en una matriu JSON d’objectes.
  • Les taules en línia { x = 1 } i les matrius funcionen com t’esperes. Els comentaris es descarten, perquè JSON no en té.

On difereixen els dos formats

Dates i hores. TOML té quatre tipus de data i hora natius; JSON no en té cap. El convertidor els escriu com a cadenes ISO 8601 i en manté el tipus: una data i hora amb desplaçament continua sent 1979-05-27T07:32:00.000-08:00, una data local continua sent 1979-05-27, i una hora local continua sent 07:32:00.000. Els segons fraccionaris es mantenen fins al mil·lisegon. En tornar a convertir a TOML s’obtenen cadenes simples, perquè res a JSON les marca com a dates.

Enters. Els enters de TOML són de 64 bits amb signe, de −9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Els nombres de JavaScript, que utilitzen la majoria d’analitzadors JSON, només són exactes fins a 2^53 (9.007.199.254.740.991). Els enters de TOML més grans s’escriuen amb totes les xifres, cosa que és JSON vàlid, però un programa que els llegeixi com a nombres de coma flotant els arrodonirà; marca Enters grans com a cadenes per evitar-ho. Un enter fora de l’interval de 64 bits es rebutja, tal com exigeix l’especificació de TOML.

Nombres especials de coma flotant. inf, -inf i nan no tenen forma en JSON, de manera que s’escriuen com a les cadenes "inf", "-inf" i "nan".

JSON → TOML. Un document TOML és sempre una taula, de manera que el JSON ha de ser un objecte al nivell superior. TOML no té null: per defecte s’ometen els valors nuls i un missatge t’indica quants; desmarca Omet els valors nuls per obtenir un error amb la ubicació del primer. JSON no distingeix 1 de 1.0, de manera que els nombres sencers es converteixen en enters de TOML, i els nombres massa grans per a 64 bits es converteixen en nombres de coma flotant. En els navegadors recents, els enters grans del teu JSON mantenen les xifres exactes.

Preguntes freqüents

S'envia la meva configuració enlloc?

No. La conversió s’executa íntegrament al teu navegador, de manera que les claus d’API o els secrets dels teus fitxers de configuració no surten mai del teu ordinador.

Per què ha canviat l'ordre de les meves claus a la sortida TOML?

TOML exigeix que els parells clau/valor simples vagin abans de les subtaules a cada taula; per això el convertidor escriu primer els valors, després les [taules] i després les [[matrius de taules]]. Les dades són les mateixes.

Es conserven els comentaris de TOML?

No. JSON no té comentaris, de manera que es perden en convertir TOML → JSON, i no n’hi ha cap per restaurar en el camí de tornada.

Quina versió de TOML s'admet?

TOML 1.0, incloent-hi les claus amb punts, les taules en línia, les matrius de taules, els enters hexadecimals, octals i binaris, i els quatre tipus de data i hora.

Per què la meva data és una cadena en JSON?

JSON no té tipus de data. Les cadenes ISO 8601 són la convenció habitual, i la majoria de llenguatges les poden analitzar directament.