Yksi hyödyllisimmistä hetkistä missä tahansa formaattimuuntimessa on se, kun työkalu kieltäytyy teeskentelemästä, että jokainen rakenne voidaan muuttaa siististi jokaiseksi toiseksi rakenteeksi. Juuri näin käy, kun Converty jättää TOML-paneelin tyhjäksi syötteelle, joka muuten parsii oikein JSONina tai YAMLina. Dokumentti on kelvollinen. Data on edelleen olemassa. Ongelma on kapeampi: TOML ei voi esittää rakennetta tavalla, jota muunnin vaatii.
Tämä on helppo tulkita bugiksi, jos formaattimuunnosta ajattelee kosmeettisena harjoituksena. Rakenteisen datan muunnos ei kuitenkaan ole syntaksin maalaamista uudelleen. Kyse on siitä, voiko saman pohjamallin serialisoida rehellisesti toiseen formaattiin.
Siksi JSON / YAML / TOML -muunnin parsii lähteen ensin ja renderöi vasta sitten yhteensopivat tulosteet. Muotoiltu JSON, minimoitu JSON ja YAML voivat esittää monenlaisia muotoja. TOML on rajoitetumpi. Jos parsittu arvo ei sovi TOML-yhteensopivaksi tipputason objektiksi, muuntimen on oikein pysähtyä siihen.
TOML on kapeampi, koska se on rakennettu konfiguraatiota varten
JSON ja YAML ovat anteliaita formaatteja. Ne voivat esittää tipputason listoja, epäsäännöllisiä sisäkkäisiä kokoelmia ja monia dokumenttirakenteita, joita käytetään API-vasteissa, datanvaihdossa ja konfiguraatioissa. TOML on erilainen. Se on suunniteltu pysymään siistinä ja ennustettavana nimetyille asetuksille, osioille ja konfiguraatiodokumenteille.
Tämä ero tekee TOMLista luettavan niissä työnkuluissa, joihin se on tarkoitettu. Kompromissi on, ettei se voi toimia yleisenä kohteena jokaiselle kelvolliselle JSON- tai YAML-dokumentille.
Convertyn toteutuksessa rajoitus alkaa juuresta. TOML-tuloste renderöityy vain, kun parsittu syöte on tipputason objekti. Jos lähdedokumentti on tipputason lista, skalaarinen arvo tai muu rakenne, joka ei siististi muutu TOMLin juuritauluksi, muunnin näyttää rajan eikä rakenna harhaanjohtavaa tulosta.
Kelvollinen syöte ei ole sama asia kuin muunnettava syöte
Dokumentti voi olla kelvollista JSONia tai YAMLia ja silti huono ehdokas TOML-tulosteeksi. Muunnoskysymys tulee parsimisen jälkeen, ei ennen sitä.
Tämä tekee Convertyn käyttäytymisestä hyödyllisellä tavalla tiukkaa. Virheellinen lähde pysäyttää prosessin aikaisin. Kelvollinen lähde jatkaa, mutta TOML ilmestyy vain, jos parsittu rakenne on yhteensopiva. Kelvollisuus päästää sinut muunnosvoon. Yhteensopivuus päättää, mitkä tulosteet voit oikeasti ottaa käyttöön.
Tipputason lista on yksinkertaisin esimerkki
Kuvittele JSON-dokumentti, jonka juurena on objektien lista. Se on täysin tavallinen muoto API-vasteissa ja vientityönkuluissa. JSON ja YAML esittävät sen helposti. TOML ei Convertyn renderöintitavassa voi käsitellä sitä tipputason dokumenttitauluna. Tulos ei ole "melkein TOML". Se on "ei TOML-tulostetta".
Juuri tällaisen tapauksen pitäisi tuottaa yhteensopivuusviesti pakotetun muunnoksen sijaan. Hyvän muuntimen pitää auttaa ymmärtämään, miksi tuloste puuttuu, eikä muotoilla dataa hiljaa uudelleen näennäisesti uskottavaksi mutta merkitystä muuttavaksi muodoksi.
Myös arvotyypit merkitsevät
Vaikka juuri olisi objekti, TOML voi hylätä joitakin arvoja, jotka JSON tai YAML hyväksyy helpommin. Tarkka reunaehto riippuu serialisoitavasta rakenteesta, mutta käytännön opetus on sama: TOML on tiukempi sen suhteen, miltä konfiguraatioystävällisen dokumentin pitäisi näyttää.
Kun TOML-serialisointi epäonnistuu, puuttuva tuloste on hyödyllistä tietoa. Se kertoo, että dataa pitää ehkä yksinkertaistaa, muotoilla uudelleen tai pitää JSONissa tai YAMLissa, koska ne sopivat lähderakenteeseen paremmin.
Milloin kannattaa lopettaa muuntaminen
Puuttuva TOML-paneeli voi tuntua keskeneräiseltä työltä, mutta usein se suojaa pahemmalta alavirran virheeltä. Jos dokumentti on parempi JSONina tai YAMLina, sen pakottaminen TOMLiin ei ole kurinalaisuutta vaan vääristämistä.
Tämä on tärkeää sekatyönkuluissa, joissa data liikkuu APIen, käyttöönoton konfiguraation ja tuontityökalujen välillä. Formaattivalinnan pitäisi seurata rakennetta, ei taistella sitä vastaan.
Jos työ kuuluu lopulta toistuviin skripteihin tai CI-vaiheisiin eikä vain kertaluonteiseen tarkistukseen, vertailu Converty vs yq JSON- ja YAML-handoffeihin auttaa päättämään, onko selain edelleen oikea kerros tehtävälle.
Puuttuva TOML-tuloste on hyödyllistä palautetta
Parhaat rakenteisen datan työkalut eivät vain muuta tekstiä. Ne kertovat, milloin kohdeformaatti on väärä koti lähderakenteelle. Tätä tyhjä TOML-tulos Convertyssa tarkoittaa. Syöte ei välttämättä ole rikki. Se voi yksinkertaisesti kuulua eri formaattiperheeseen kuin mihin sitä yritettiin pakottaa.
Avaa JSON / YAML / TOML -muunnin, kun tarvitset suoran työkalun, käytä usein kysyttyjä kysymyksiä sivuston formaattiodotuksiin ja palaa artikkeliin Kuinka muunnat JSONin, YAMLin ja TOMLin rikkomatta dataa, kun tarvitset laajemman työnkulun.



