Tiontaigh idir JSON agus YAML

tiontaíonn JSON go YAML (agus a mhalairt) ag coinneáil an struchtúir, le hindeantáil ininchumraithe. Praiticiúil chun cumraíocht a aistriú idir comhaid .json agus .yaml

Cad dó atá an tiontaire JSON / YAML seo?

Athraíonn an uirlis seo doiciméad YAML go JSON agus vice versa, ag caomhnú an struchtúir sonraí (rudaí, táblaí, cineálacha scálach). Is oibríocht choiteann i bhforbairt é tiontú JSON go YAML, nó YAML go JSON: ginimid comhad OpenAPI YAML ó shonraíocht JSON, aistrímid aschur REST API go YAML chun é a thiomnú do stór cumraíochta, aistrímid léiriú Kubernetes YAML go JSON chun é a chur ar aghaidh chuig kubectl --dry-run=client, nó jab-gníomhú --dry-run=cliant - le webcodel --dry-run=client - nó jab-gnímh scéimre JSON. Níos leithne, is é an droichead idir saol an mhalartaithe sonraí (JSON) agus domhan na cumraíochta in-eagarthóireachta de láimh (YAML).

YAML vs JSON: Comparáid Ceann le Ceann

Tugann JSON agus YAML aghaidh ar riachtanais chomhchosúla ach ar chásanna úsáide éagsúla. Déanann an tábla seo a leanas achoimre ar na mórdhifríochtaí teicniúla, atá úsáideach chun an dá cheann a roghnú ag brath ar an gcomhthéacs.

Critéar JSON YAML
Inléiteacht dhaonna Meán (braces, comharthaí athfhriotail ar fud) Láidre (eangadh, beagán poncaíochta)
Briatharúlacht Níos mó focal Níos gonta
Tuairimí Ní thacaítear leis Tacaithe (# nóta tráchta)
Ildhoiciméid i gcomhad amháin Ní hea Tá, tríd an deighilteoir ---
Ancairí agus ailiasanna (athúsáid) Ní hea Tá (&ancaire agus *ancaire)
Cineál córas Dian (teaghrán, uimhir, bool, null, eagar, réad) Coméigean intuigthe (, níl, null, dátaí, scálaí léirmhínithe)
Feidhmíocht parsála Parsálaithe dúchasacha an-tapa i ngach áit Gramadach níos moille, i bhfad níos leithne
Glacadh le REST APIs Caighdeán de facto Uathúla
Glacadh le haghaidh cumraíochta Annamh (seachas package.json, tsconfig.json) Caighdeán de facto (Kubernetes, CI/CD, Ansible)

Cathain is ceart JSON a úsáid?

Bíonn JSON ag teastáil gach uair a labhraíonn clár le clár eile. A cásanna úsáide tipiciúil:

  • API REST agus GraphQL: uaslódálacha iarratais agus freagartha.
  • Malartú sonraí idir micreasheirbhísí agus scuainí teachtaireachta.
  • Cód JavaScript dúchais: JSON.parse agus JSON.stringify gan spleáchais.
  • Stóráil taobh an bhrabhsálaí: Stóráil áitiúil, Storage seisiúin, IndexedDB.
  • iarratais AJAX agus faigh.
  • Athróga dénártha nó sreafa-dhírithe: BSON (MongoDB), JSON Lines (logálacha, tacair sonraí ML), MessagePack.
  • Cumraíocht uirlisí JS/TS: package.json, tsconfig.json, composer.json.

Cathain is ceart YAML a úsáid?

Tá YAML ag teastáil chomh luath agus a dhéanann duine eagarthóireacht rialta ar an gcomhad. A cásanna úsáide tipiciúil:

  • Docker Compose (docker-compose.yml) agus próifílí cruachta.
  • Léiríonn Kubernetes (Cairteacha Imscaradh, Seirbhís, Ingress, Helm).
  • Leabhar súgartha agus fardail inchurtha.
  • Píblínte CI/CD: Gníomhartha GitHub, GitLab CI, CircleCI, Píblínte Bitbucket.
  • Sonraíochtaí OpenAPI / Swagger agus AsyncAPI.
  • Cumraíocht feidhmchláir anótáilte (Symfony, Spring Boot, Rails) áit a bhfuil tráchtanna úsáideach.
  • Comhaid a chuirtear in eagar go minic de láimh, áit a mbíonn achomair agus inléiteacht chun tosaigh ar luas parsála.

Gaistí Coitianta in YAML

Tá YAML níos ceadaithe ná JSON, rud a fhágann gur formáid chumhachtach ach fealltach é. Na gaistí is coitianta:

  • Eangú: tá cosc ar chluaisíní ag an tsonraíocht, níl ach spásanna bailí. Má dhéantar an dá cheann a mheascadh nó líon na spásanna sa bhloc céanna a athrú, brisfear an pharsáil.
  • éigeandáil scálach uathoibríoch: , níl, ar, as, fíor, bréagach, null, None, ~ are parsoiled. Gaiste samplach: déantar slánuimhir 1234 de chód poist neamhluaite 01234, agus déantar bréagach d'ainm tíre NO (An Iorua). Cuir teaghráin débhríocha faoi iamh i Sleachta i gcónaí.
  • Teaghráin illíne: Coinníonn | (bloc litriúil) sosanna líne mar atá, agus cuireann > (fillte) spásanna in ionad sosanna líne. Déanann na bratacha chomping - agus + an t-iompar ar an léim dheireanach a choigeartú.
  • YAML 1.1 vs 1.2: Déileálann 1.1 (an-choitianta fós, mar shampla trí PyYAML de réir réamhshocraithe) le tá/níl/ar/as mar Booleans, a bhaintear 1.2. Bíonn difríocht idir iompraíochtaí freisin ar bhunuimhreacha 8.
  • Dátaí intuigthe: Is éard atá i gceist le 2024-01-15 gan comharthaí athfhriotail a bheith mar réad dáta i bparsálaithe áirithe, ní mar theaghrán.

Samplaí taobh le taobh

An doiciméad céanna, arna shloinneadh in JSON ag an am sin in YAML. Cumraíocht shimplí feidhmchlár lena spleáchais agus a thimpeallacht:

leagan JSON

{
    "name": "cdrn-app",
    "leagan": "1.14.2",
    "comhshaol": "léiriú",
    "spleáchais": {
        "php": "^8.3",
        "symfony/framework-bundle": "^7.0",
        "doctrine/orm": "^3.0"
    },
    "features": ["taisce", "mailer", "scuaine"],
    "debug": bréagach
}

Leagan coibhéiseach YAML

# Cumraíocht feidhmchláir
ainm: cdrn-app
leagan: 1.14.2
timpeallacht: táirgeadh
spleáchais:
    php: '^8.3'
    symfony/creat-beart: '^7.0'
    fhoirceadal/orm: '^3.0'
gnéithe:
    - taisce
    - mailer
    - eireaball
debug: bréagach

Tá an leagan YAML thart ar 25% níos giorra i gcarachtar, glacann sé le trácht tosaigh, agus léann sé cosúil le liosta maoine gan torann comhréire.

Conas an tiontaire a úsáid

Céimeanna chun do shonraí a thiontú:

  1. Greamaigh do dhoiciméad foinse (JSON nó YAML) sa réimse ionchuir.
  2. Roghnaigh an treo tiontaithe atá uait (JSON go YAML, nó YAML go JSON).
  3. Cliceáil an cnaipe tiontaigh: tá an toradh formáidithe le feiceáil sa limistéar aschuir.
  4. Seiceáil an rindreáil, ansin úsáid an cnaipe cóipe chun an toradh a fháil ar do ghearrthaisce.

Déantar an tiontú go háitiúil i do bhrabhsálaí nó trí bhealach freastalaí tiomnaithe ag brath ar an uirlisiú: ní choinnítear aon sonraí íogaire.

Ceisteanna coitianta

JSON nó YAML do mo chomhaid cumraíochta?

Má fhorchuireann an t-éiceachóras formáid (Kubernetes in YAML, package.json in JSON), lean an gnás. Seachas sin, i bhfabhar cumraíochtaí fada, anótáilte a chuireann tú in eagar de láimh, agus JSON i bhfabhar cumraíochtaí arna nginiúint ag ríomhchlár nó arna gcaitheamh ag cód. Is minic gurb é láithreacht tuairimí úsáideacha an argóint chinntitheach i bhfabhar YAML.

Conas tuairimí a choinneáil le linn turais bhabhta YAML chuig JSON chuig YAML?

Ní féidir leat. Ní thacaíonn JSON le tuairimí: chomh luath agus a athraíonn tú YAML go JSON, cailltear nótaí tráchta go buan. Chun tráchtanna a chaomhnú le linn eagarthóireacht ríomhchláraithe, úsáid parsálaí a chaomhnaíonn an fhormáidiú, amhail ruamel.yaml i Python sa mhód cuairt bhabhta, nó seachain úsáid a bhaint as JSON ar fad.

Cén fáth a ndéanann mo chomhad YAML parsáil i gceart go háitiúil ach go dteipeann air sa táirgeadh?

Cúiseanna coitianta: leaganacha éagsúla parsálaí (YAML 1.1 vs 1.2), cluaisíní tugtha isteach ag eagarthóir, luachanna neamhluaite a bhfuil cuma boolean orthu (NO, as) nó uimhreacha (01234), ionchódú comhad (UTF-8 BOM ar dhrochláimhseáil). Luaigh teaghráin débhríoch go córasach agus socraigh an leagan parsálaí i do thionscadal.

An fo-thacar de YAML é JSON?

Ós rud é YAML 1.2, tá go praiticiúil: is doiciméad bailí YAML 1.2 é aon doiciméad JSON bailí. Tá a mhalairt bréagach: ní féidir doiciméad YAML a úsáideann tráchtanna, ancairí, dátaí intuigthe nó iliomad doiciméad i gcomhad a chur in iúl go díreach in JSON gan faisnéis a chailliúint.

Cad iad na roghanna eile seachas JSON agus YAML ar cheart duit a bheith ar eolas agat?

TOML: coitianta le haghaidh cumraíochta (Cargo, pyproject.toml), comhréiteach maith idir inléiteacht agus clóscríobh follasach. INI: an-simplí, ach gan aon struchtúr neadaithe caighdeánach. XML: briathar, ach fós ábhartha do SOAP agus roinnt cumraíochtaí Java oidhreachta. HCL: in úsáid ag Terraform. JSON5 agus JSONC: Breiseáin JSON a ligeann do thuairimí agus camóga rianaithe.

Cad é an meáchan atá ag YAML vs JSON?

Maidir le struchtúr coibhéiseach, is gnách go mbíonn YAML 15 go 30% níos giorra i mbearta, mar gheall ar an easpa comharthaí athfhriotail timpeall eochracha agus an chuid is mó teaghráin, agus easpa braces. Ar an tsreang (iompar HTTP), tá JSON mionghearrtha fós inchomparáide, ach tá leagan inléite níos dlúithe ag YAML i gcónaí. Maidir le feidhmíocht íon ar an taobh parsála, tá JSON arís agus arís eile níos tapúla, rud a thugann údar lena úsáid le haghaidh APIanna ardthráchta.

Sampla iarratais

curl -X POST https://cdrn.fr/api/v1/tools/json-yaml-converter/execute \
  -H "Content-Type: application/json" \
  -d '{"json":"...","space_tabulation":1}'

Scéimre ionchuir

Réimse Cineál Riachtanach Réamhshocrú
json text
space_tabulation integer

Críochphointí

  • GET https://cdrn.fr/api/v1/tools - liostaíonn na huirlisí go léir atá ar fáil
  • GET https://cdrn.fr/api/v1/tools/json-yaml-converter - faigh scéimre na huirlise seo
  • POST https://cdrn.fr/api/v1/tools/json-yaml-converter/execute - rith an uirlis seo le pálasta JSON