Utilia

JSON uz YAML pārveidotājs

Konvertējiet JSON uz YAML un YAML uz JSON pārlūkprogrammā, ar enkuru, apvienošanas atslēgu un vairāku dokumentu failu atbalstu. Nekas netiek augšupielādēts.

Konvertēšana

Kā lietot JSON uz YAML pārveidotāju

  1. Izvēlieties virzienu: JSON → YAML vai YAML → JSON.
  2. Ielīmējiet datus vai noklikšķiniet uz Atvērt failu, lai ielādētu .json, .yaml vai .yml failu (līdz 10 MB).
  3. Izvēlieties Atkāpe (2 vai 4 atstarpes) un, ja vēlaties, Kārtot atslēgas alfabētiski.
  4. Noklikšķiniet uz Konvertēt vai vienkārši turpiniet rakstīt: rezultāts atjaunojas automātiski. Ja ievade ir nederīga, kļūdas ziņojums norāda problēmas rindu un kolonnu.
  5. Nokopējiet vai lejupielādējiet rezultātu. Mainīt virzienu nosūta izvadi atpakaļ uz ievadi, lai to konvertētu otrā virzienā.

JSON un YAML: tie paši dati, cita sintakse

Praksē YAML ir JSON paplašinājums: katrs JSON dokuments apraksta datus, ko YAML var izteikt, un YAML pievieno vieglāku sintaksi, ko cilvēkiem ir vieglāk lasīt un rediģēt. Tāpēc Kubernetes manifesti, Docker Compose faili, GitHub Actions un GitLab CI konveijeri, Ansible spēlgrāmatas un OpenAPI specifikācijas parasti tiek rakstītas YAML, bet API un programmas apmainās ar JSON.

Tie paši dati abos formātos:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

Pārveidotājs raksta bloku stila YAML: viena atslēga rindā, saraksti ar domuzīmēm un ievilkti ligzdoti objekti. Garas virknes nekad netiek locītas, un daudzrindu virknes izmanto burtisko | stilu, lai rindu pārtraukumi tiktu saglabāti precīzi. Virknes, kuras YAML citādi nolasītu kā citu tipu, tiek ieliktas pēdiņās: "yes", "1.0" vai "null" pēc pilna apļa paliek virknes. Kārtot atslēgas sakārto katra objekta atslēgas alfabētiski, kas atvieglo divu konfigurācijas failu salīdzināšanu.

YAML → JSON

YAML tiek nolasīts ar YAML 1.2 pamatshēmu, tiem pašiem noteikumiem, ko izmanto lielākā daļa mūsdienu rīku:

  • true/false, skaitļi un null (vai ~) kļūst par JSON vērtībām; yes, no, on un off paliek virknes, kā to prasa YAML 1.2 specifikācija.
  • Enkuri un aizstājvārdi (&base, *base) tiek izvērsti, un tiek atbalstītas apvienošanas atslēgas (<<: *base), kas ir izplatītas CI failos.
  • Fails ar vairākiem dokumentiem, kas atdalīti ar ---, kļūst par JSON masīvu ar vienu elementu katram dokumentam, un ziņojums norāda, cik dokumentu tika apvienoti.
  • Komentāri tiek izmesti, jo JSON komentāru nav.
  • .inf un .nan nav JSON ekvivalenta; tie tiek ierakstīti kā virknes "Infinity" un "NaN".

Lai pasargātu jūsu pārlūkprogrammu no „miljarda smieklu“ failiem, kuros daži aizstājvārdi izvēršas par miljardiem vērtību, dokuments, kas izvēršas par vairāk nekā miljonu vērtību, tiek noraidīts.

Biežākās YAML kļūdas

  • Tabulācijas atkāpēm: YAML atļauj tikai atstarpes.
  • Nekonsekventa atkāpe: viena saraksta vai objekta elementiem jāsākas vienā kolonnā.
  • Trūkst atstarpes aiz kola: key:value ir viena virkne, bet key: value ir atslēgas un vērtības pāris.
  • Speciālās rakstzīmes bez pēdiņām: vērtība, kas sākas ar @, atpakaļpēdiņu, *, & vai ! vai kas satur : vai #, jāliek pēdiņās.

Biežāk uzdotie jautājumi

Vai mans fails tiek sūtīts uz serveri?

Nē. Konvertēšana notiek jūsu pārlūkprogrammā, un jūsu konfigurācijas faili, noslēpumi vai API dati nekad neatstāj jūsu datoru.

Kāpēc „yes“ un „no“ netiek pārveidoti par būla vērtībām?

Kopš YAML 1.2 tikai true un false ir būla vērtības. Vecāki YAML 1.1 parseri yes, no, on un off uzskatīja par būla vērtībām, kas izraisīja slaveno „Norvēģijas problēmu“ (valsts kods NO, kas tika nolasīts kā false). Šis rīks seko YAML 1.2.

Vai YAML komentāri tiek saglabāti?

Nē. JSON komentāru nav, tāpēc YAML → JSON tie tiek zaudēti. Konvertējot JSON → YAML, komentārus rezultātam varat pievienot pēc tam.

Vai varu konvertēt Kubernetes failu ar vairākiem resursiem?

Jā. Katrs resurss, kas atdalīts ar ---, kļūst par vienu JSON masīva elementu. Šī masīva konvertēšana atpakaļ uz YAML dod vienu dokumentu ar sarakstu.

Vai pārveidotājs maina atslēgu secību?

Nē, ja neatzīmējat Kārtot atslēgas: atslēgas saglabā secību, kādā tās parādās jūsu ievadē. Vienīgais izņēmums nāk no paša JavaScript: atslēgas, kas ir veseli skaitļi, piemēram, "10" vai "2", tiek novietotas pirmās augošā secībā.