Tiontaigh idir JSON agus YAML
- Deais
- Doiciméadú
- API
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 (tá, 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.parseagusJSON.stringifygan 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:
tá,níl,ar,as,fíor,bréagach,null,None,~are parsoiled. Gaiste samplach: déantar slánuimhir1234de chód poist neamhluaite01234, agus déantarbréagachd'ainm tíreNO(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/asmar 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-15gan 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ú:
- Greamaigh do dhoiciméad foinse (JSON nó YAML) sa réimse ionchuir.
- Roghnaigh an treo tiontaithe atá uait (JSON go YAML, nó YAML go JSON).
- Cliceáil an cnaipe tiontaigh: tá an toradh formáidithe le feiceáil sa limistéar aschuir.
- 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áilGET https://cdrn.fr/api/v1/tools/json-yaml-converter- faigh scéimre na huirlise seoPOST https://cdrn.fr/api/v1/tools/json-yaml-converter/execute- rith an uirlis seo le pálasta JSON