kontakta oss

JSON mot YAML är två populära format för datautbyte mellan olika applikationer och språk, även känd som serialisering av data.
De är lika i funktion och funktioner: de representera dataobjekt och strukturerar och använder en enkel syntax som underlättar läsbarhet och redigerbarhet.
Men skillnader i design påverkar deras användningsområde. Denna översikt över YAML vs JSON visar deras huvudfunktioner och jämför dem för att hjälpa dig att göra rätt val för ditt projekt.
JSON betyder JavaScript-objektnotation. Som du kanske misstänker med namnet härrör JSON från JavaScript-dataformat. Det är en öppen standard, lätt, textbaserat format med begränsade datatyper. Dess korta syntax och enkla struktur gör det mycket lätt att läsa.
Det används för att skicka data till servern och från server till klient, som ett kuvert där data bifogas och skickas tillbaka och framåt mellan korrespondenter.
Det uppskattas mycket av programmerare som använder det i mobilappar, databastjänster som MongoDB eller Kubernetes och användarinteraktioner, eftersom det är ett mer användarvänligt alternativ till XML. Enkelheten och hastigheten på bearbetningen som JSON erbjuder och dess höga kompatibilitet med alla system gör det till ett av de mest populära formaten som används idag.
Enligt JSONs utvecklare, Douglas Crockford, ett språk som använde samma principer användes redan på Netscape 1996, men JSON blev mainstream som en etablerad syntax först 2001.
Det är en resurs för Android-teknik, REST-API eller någon situation där data skickas från en server till en webbsida. Det är språkoberoende, vilket innebär att det kan användas med vilket programmeringsspråk som helst. Och en stor del av vår onlineupplevelse förlitar sig på det.
Vilka är de definierande funktionerna i ett JSON-dokument? JSON-filtillägg definieras som.json. Den använder universella datastrukturer och ett begränsat urval av datatyper. Dess enkla syntax använder konventioner som är bekanta för programmerare av C-familjen av språk, som C, C ++, C #, Java, JavaScript, Perl, Python, etc. Som officiell JSON-webbplats förklarar:
”En objekt är en oordnad uppsättning namn/värdepar. Ett objekt börjar med {vänsterstag och slutar med } höger stag. Varje namn följs av :kolon, och namn/värdeparen är åtskilda av , kommatecken.”
JSONs syntaxregler är enkla.
Låt oss titta på ett JSON-exempel, med hjälp av lite information om det berömda heavy metal-bandet Metallica.
Som du kan se avgränsar lockiga parenteser både objektet och matriserna. Alla objekt citeras och attributnamnet separeras från värdet med ett kolon. Ett komma används för att separera namnvärde-parningar.
Listor definieras med fyrkantiga parenteser, där matrisattributen också separeras med kommatecken.
YAML brukade betyda Ännu ett Markup LanguageMen den innebörden ändrades till YAML är inte markeringsspråk att uttrycka sitt datafokus över ett dokumentfokus. Förkortningar åt sidan, YAML är ett mycket läsbart, lättviktigt format, som vanligtvis används för att lagra konfigurationsinformation för DevOps-verktyg som ElasticSearch, Hamnarbetare, Kubernetes, Prometheus, och Ansibel.
Som det står på den officiella hemsidan, även skrivet i YAML-format:
YAML är ett människovänligt dataserialiseringsspråk för alla programmeringsspråk.
Det är ett dataserialiseringsspråk, men det används också ofta för att skriva konfigurationsfiler. Vi kommer att titta på YAML genom dataserialiseringsprismet.
YAML publicerades första gången 2001. De grundande medlemmarna i YAML är IngyDotNet, Clark Evans och Oren Ben-Kiki, som gick samman för att skapa ett enklare format än XML. Du kan läsa berättelsen från ett förstahandsperspektiv. Sedan dess har det blivit en arbetshäst för utvecklare överallt.
YAML är skrivet i ett mycket tydligt mänskligt läsbart format, med den extra fördelen att stödja kommentarer, vilket gör det superenkelt att redigera. Sedan det är en superset av JSON, en giltig YAML-fil kan innehålla JSON-objekt. Den är lämplig för att stödja komplexa datatyper, med förmågan att omsluta objekt på flera nivåer. Detta gör det mindre vänligt att använda med vissa tekniker.
YAML accepterar samma datatyper som JSON, den största skillnaden är möjligheten att stödja datumattribut.
Frånvaron av parenteser och citat för de flesta funktioner gör läsningen mer naturlig. Även de oinitierade får en snabb förståelse för vad som ska hända. YAML: s syntax är dess styrka men också en källa för valideringsproblem om vi inte uppmärksammar strecksatser och rymdpositioner.
Se nu hur samma data som vi använde ovan för JSON ser ut i YAML-format:
På ett första intryck ser YAML bättre ut än JSON eftersom det blir av med alla parenteser och citat. Det läser inte mycket som kod utan mer som en disposition.
YAML och JSON är två populära språk, liknande i struktur och användbarhet. Deras skillnader i design, syntax och funktionalitet gör valet mellan dem till en fråga om syfte.
När du väljer mellan JSON- eller YAML-format, följ bara funktionen: vad behöver du att de ska göra?
JSON har en snabbare leverans eftersom det fungerar perfekt som ett enkelt datautbytesformat. Men det är begränsad till de datatyper som stöds, vilket kan kräva extra resurser för att hantera datamängder med ett större antal datatypalternativ. Det är lätt att läsa när du är över parenteser och citat, vilket är en fördel eftersom de avgränsar specifika objekt, vilket minskar risken för att tolka felaktig tolkning.
EL, å andra sidan, läser nästan inte som kod. Och den matryoshka-liknande förmågan att inkludera objekt i objekt möjliggör större datakomplexitet. Nackdelen? Sådan komplexitet saktar ner analyserings- och genereringsprocessen. Men med en rad komplexa datatyper tillgängliga har den sin attraktionskraft och är ett utmärkt alternativ för att utöka de typer av information som ska göras tillgänglig.
Syftet och prioriteringen av informationen som ska levereras är också viktig, och en logisk hierarki bör definieras innan kodning påbörjas. Denna tidigare organisation kommer att definiera dokumentets struktur och hur data kommer att presenteras.
Oavsett valet handlar det om vad dina data ska göra i slutändan.


Innehållsförfattare och digital medieproducent med intresse för det symbiotiska förhållandet mellan teknik och samhälle. Böcker, musik, och gitarrer är en konstant.
Människor som läste det här inlägget tyckte också att dessa var intressanta: