Kehittäjän työkalut
JSON ↔ YAML -muunnin
Muunna JSON YAML-muotoon tai YAML JSON-muotoon paikallisesti. Tukee sisäkkäisiä taulukoita, merkkijonoja ja tarkkoja lukuja.
Tulokset
Muunna JSON ja YAML tarkoitetuilla tietotyypeillä
Muunna JSON-yhteensopivia tietoja tiukan JSONin ja YAML 1.2:n ydinsyntaksin välillä. Muunnin säilyttää JSONin numeeriset esitysmuodot, myös suuret kokonaisluvut, sen sijaan, että pyöristäisi ne ensin JavaScript-lukumuunnoksen kautta. Se muuntaa data-arvot, ei lähdeasiakirjan muotoilua tai sovelluksen määritysskeemaa. YAML-kommentit, ankkurit ja esitystapavalinnat eivät säily JSON-muunnoksessa.
Vaihe vaiheelta
- Liitä tekstiä tai avaa paikallinen UTF-8-koodattu JSON-, YAML-, YML- tai TXT-tiedosto. Valitse erikseen JSON → YAML tai YAML → JSON; tiedoston avaaminen ei tunnista suuntaa.
- Valitse kaksi tai neljä välilyöntiä ja halutessasi järjestä objektien avaimet. Käsittele syöte ja korjaa syntaksivirheet tai tukemattomiin ominaisuuksiin liittyvät virheet. Järjestäminen on rekursiivista ja käyttää kirjainkoon huomioivaa leksikografista järjestystä; taulukoiden järjestys pysyy ennallaan.
- Tarkista merkkijonot, totuusarvot, null-arvot ja numerot ja kopioi, tulosta tai lataa converted.yaml tai converted.json. Kun muokkaat syötettä tai asetuksia, käsittele uudelleen, sillä vanha tulos tyhjennetään. Validoi muunnettu tiedosto sovelluksessa, joka käyttää sitä.
Asetukset ja rajoitukset
- Tyypit ja asiakirjasäännöt
- Käytä yhtä YAML 1.2 -asiakirjaa, jossa on yksilölliset merkkijonoavaimet ja JSON-yhteensopivat arvot. Laita numerolta näyttävät tunnisteet, kuten "00123", lainausmerkkeihin; YAML-arvo 00123 ilman lainausmerkkejä muuttuu numeroksi 123. Paljaat yes- ja on-arvot sekä ISO-päivämääräteksti pysyvät merkkijonoina ydinsääntöjen mukaisesti.
- Aliakset ja tukemattomat ominaisuudet
- Syklittömät aliakset laajennetaan toistuviksi arvoiksi. Syklit, päällekkäiset avaimet, muut kuin merkkijonoavaimet, tukemattomat tagit ja ei-äärelliset numerot hylätään. YAML-yhdistämisavaimia ei sovelleta: <<: *base muuttuu tavalliseksi "<<"-ominaisuudeksi, joten laajenna tarkoitetut periytyvät kentät ensin.
- Koko ja monimutkaisuus
- Syöte on rajattu 2 MiB:iin UTF-8-tekstiä: 2,097,152 tavua. Tuloksen raja on 8 MiB. Käsittely pysähtyy myös yli 128 sisäkkäisyystason, 200,000 arvosolmun tai 100 aliasvierailun kohdalla; pieni tiedostokin voi ylittää nämä rajat.
Esimerkkitehtävä
Lataa types-example.json ja valitse JSON → YAML kahden välilyönnin sisennyksellä ja järjestäminen pois käytöstä. Muunna ja vertaa tiedostoon types-example.yaml. Lainausmerkeissä olevat id ja word pysyvät merkkijonoina, enabled pysyy arvossa false ja retries sekä large pysyvät numeroina.
Lataa esimerkkitiedostot
Esimerkkisyöte
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}Odotettu tulos
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993Avaa nyt types-example.yaml, vaihda erikseen suuntaan YAML → JSON ja käsittele uudelleen. id-arvon pitäisi edelleen olla "00123" ja suuren kokonaisluvun edelleen 9007199254740993. Poista lainausmerkit arvon 00123 ympäriltä YAMLissa ja toista: arvosta tulee numero 123. Ero on tärkeä tunnisteille, vaikka molemmat tiedostot ovat kelvollisia.
Kysymykset ja ongelmanratkaisu
Miksi päällekkäisiä avaimia sisältävä JSON ei toimi täällä mutta muotoillaan muualla?
JSON-muotoilija voi varoittaa päällekkäisistä avaimista ja säilyttää ne. Tämä muunnin hylkää ne, koska muunnos avain–arvokartaksi voisi muuttaa niiden merkitystä. Päätä, mikä arvo kuuluu lähteeseen, ja poista kaksoiskappale ennen muunnosta.
Säilyvätkö kommentit ja YAML-periytyminen?
JSONissa ei ole kommentteja tai ankkureita. Aliakset laajennetaan ja yhdistämisavaimet viedään kirjaimellisesti sen sijaan, että niitä sovellettaisiin periytymisenä. Laajenna tarkoitetut tiedot ja tarkista tulos; muunnos ei kirjoita uskollisesti uudelleen jokaista YAML-ominaisuutta.
Ovatko suuret numerot turvallisia kohdesovelluksessa?
Muunnin säilyttää tuetut numeroesitykset ja suurten kokonaislukujen arvot, mutta myöhempi ohjelma voi jäsentää ne pienemmällä tarkkuudella. Käytä lainausmerkeissä olevaa merkkijonoa, kun numerolta näyttävä arvo on tunniste, ja testaa kohdesovelluksen jäsennin.