all
Business
data science
design
development
our journey
Strategy Pattern
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Alex Gamela

25. februar 2024

Min Read

YAML vs JSON: Hvad er forskellen?

JSON k YAML er to populære formater til dataudveksling mellem forskellige applikationer og sprog, også kendt som serialisering af data.

De er ens i funktion og funktioner: de repræsentere dataobjekter og strukturerer og bruger en simpel syntaks som letter læsbarhed og redigerbarhed.

Men forskelle i design påvirker deres anvendelsesområde. Denne oversigt over YAML vs JSON viser deres hovedfunktioner og sammenligner dem for at hjælpe dig med at træffe det rigtige valg til dit projekt.

blue arrow to the left
Imaginary Cloud logo

Hvad er JSON

JSON betyder JavaScript-objektnotation. Som du måske har mistanke om ved navnet, stammer JSON fra JavaScript-dataformater. Det er et åbent standard, let, tekstbaseret format med begrænsede datatyper. Dens korte syntaks og enkle struktur gør det meget let at læse.

Det bruges til at sende data til serveren og fra server til klient, som en konvolut, hvor dataene er vedlagt og sendt tilbage og frem mellem korrespondenter.

Det er meget værdsat af programmører, der bruger det i mobilapps, databasetjenester som MongoDB eller Kubernetes og brugerinteraktioner, idet det er et mere brugervenligt alternativ til XML. Enkelheden og hastigheden af behandlingen, som JSON tilbyder, og dens høje kompatibilitet med ethvert system gør det til et af de mest populære formater, der bruges i dag.

JSON-historien

Ifølge JSONs udvikler, Douglas Crockford, et sprog, der brugte de samme principper, blev allerede brugt på Netscape i 1996, men JSON blev først mainstream som en etableret syntaks i 2001.

Det er en god ressource til Android-teknologi, REST-API eller enhver situation, hvor data sendes fra en server til en webside. Det er sproguafhængigt, hvilket betyder, at det kan bruges med ethvert programmeringssprog. Og en stor del af vores online oplevelse er afhængig af det.

Tekniske specifikationer

Hvad er de definerende funktioner i et JSON-dokument? JSON filtypenavne defineres som.json. Det bruger universelle datastrukturer og et begrænset udvalg af datatyper. Dens enkle syntaks bruger konventioner, der er velkendte for programmører i C-familien af sprog, som C, C ++, C #, Java, JavaScript, Perl, Python osv. Som Officiel JSON-hjemmeside forklarer:

„En genstand er et uordnet sæt navn/værdipar. Et objekt begynder med {venstre bøjle og slutter med } højre bøjle. Hvert navn efterfølges af :kolon, og navn/værdiparene er adskilt af , komma.“

Datatyper brugt af JSON

  • Strenge
  • Tal
  • Objekt
  • Arrayer
  • Boolsk (sandt/falsk)
  • Null-værdier

Syntaks

JSONs syntaksregler er enkle.

  • Root node skal være en matrix eller et objekt.
  • Data betegnes som navn/værdi-par.
  • Dataindtastninger adskilles af kommaer.
  • Objekter er begrænset mellem krøllede parenteser.
  • Firkantede parenteser indeholder arrays.
  • Objekter kan have matrixobjekter til oprettelse af lister.
  • Det bruger citater omkring navne og værdier, som er adskilt af et kolon.

JSON Eksempel

Lad os se på et JSON-eksempel ved hjælp af nogle oplysninger om det berømte heavy metal-band Metallica.


Som du kan se, afgrænser krøllede parenteser både objektet og arrayerne. Alle elementer er citeret, og attributnavnet adskilles fra værdien med et kolon. Et komma bruges til at adskille navn/værdiparringer.

Lister defineres ved hjælp af firkantede parenteser, hvor matrixattributterne også adskilles med kommaer.

Fordele ved JSON

  • Dens kompakte syntaks gør JSON meget læsbar for mennesker.
  • Enkel syntaks med begrænset markup.
  • Hurtig parsing efter systemer og sprog.
  • Det kan bruges af de fleste systemer og sprog.

Ulemper ved JSON

  • Begrænsede datatyper: accepterer kun strenge, tal, JSON-objekt, array, boolsk og null.
  • Accepterer ikke: navneområde, kommentar eller attribut.
  • JSONs struktur er beregnet til at være enkel, så den understøtter muligvis ikke komplekse konfigurationer alene.

blue arrow to the left
Imaginary Cloud logo

Hvad er YAML

YAML plejede at betyde Endnu et Markup Language, men den betydning ændrede sig til YAML er ikke markeringssprog at udtrykke sit datafokus over et dokumentfokus. Forkortelser til side er YAML et meget menneskeligt læsbart, letvægtsformat, der ofte bruges til at gemme konfigurationsoplysninger til DevOps-værktøjer som ElasticSearch, havnearbejder, Kubernetes, Prometheus, og Ansibel.

Som det står på den officielle hjemmeside, også skrevet i YAML format:

YAML er et menneskevenligt dataserialiseringssprog til alle programmeringssprog.

Det er et dataserialiseringssprog, men det bruges også ofte til at skrive konfigurationsfiler. Vi ser på YAML gennem dataserialiseringsprismet.

YAML-historien

YAML blev første gang offentliggjort i 2001. De stiftende medlemmer af YAML er IngyDotNet, Clark Evans og Oren Ben-Kiki, der sluttede sig til bestræbelserne på at skabe et enklere format end XML. Du kan læse historien fra et førstehånds perspektiv. Siden da er det blevet en arbejdshest for udviklere overalt.

Tekniske specifikationer

YAML er skrevet i et meget klart menneskelæsbart format med den ekstra fordel at understøtte kommentarer, hvilket gør det super nemt at redigere. Siden det er et supersæt af JSON, en gyldig YAML-fil kan indeholde JSON-objekter. Det er velegnet til at understøtte komplekse datatyper med evnen til at omslutte objekter på flere niveauer. Dette gør det mindre venligt at bruge med nogle teknologier.

Datatyper

YAML accepterer de samme datatyper som JSON, den største forskel er evnen til at understøtte datoattributter.

  • Strenge
  • Tal
  • Boolesk
  • Datoer og tidsstempler
  • Sekvenser
  • Indlejrede værdier
  • Null-værdier

Syntaks

Fraværet af parenteser og citater for de fleste funktioner gør læsningen mere naturlig. Selv de uindviede får en hurtig forståelse af, hvad der skal ske. YAML's syntaks er dens styrke, men også en kilde til valideringsproblemer hvis vi ikke er opmærksomme på indrykninger og pladspositioner.

  • Bruger nøgleværdipar, adskilt af kolon.
  • Fjedre er ikke lukket i parentes.
  • Indrykninger bruges til at definere datahierarki.
  • Lister begynder med bindestreger.
  • Tillader kommentarer ved at gå forud for dem med et #.
  • Mellemrum før attributter er vigtige.
  • Pipe Character (|) giver mulighed for multilinjestrenge; tegnet „større end“ (>) gør det muligt at læse multilinjestrenge som en enkelt linje.
  • YAML kan referere til andre dataobjekter ved hjælp af „&“.

YAML-eksempel

Se nu, hvordan de samme data, vi brugte ovenfor til JSON, ser ud i YAML-format:


På et første indtryk ser YAML bedre ud end JSON, da det slipper af med alle parenteser og citater. Det læser ikke meget som kode, men mere som en oversigt.

Fordele ved YAML

  • Meget enkel menneskelæsbar syntaks.
  • Kompakt syntaks, der bruger indrykning i Python-stil til at betegne struktur.
  • Understøtter skalere som int, binær, str og bool og samlinger som kort, sæt, par og seq.
  • YAML understøtter kommentarer, hvor JSON ikke gør det. Bare tilføj et # symbol før kommentaren.
  • Evne til at bruge komplekse datastrukturer.
  • Ved at bruge symbolet „&“ kan YAML genbruge blokke. Dette er en af grundene til, at det bruges til at beskrive infrastruktur, som Kubernetes-stakke. JSON har ikke en tilsvarende operation.

Ulemper ved YAML

  • Forkert indrykning eller afstand genererer let valideringsfejl.
  • Den deklarative karakter af YAML gør fejlfinding vanskeligere: Alpha-koden for Norge (NO) kan fortolkes som en boolsk værdi.
  • Ingen brudpunkter.
blue arrow to the left
Imaginary Cloud logo

Forskelle mellem JSON og YAML

YAML og JSON er to populære sprog, der ligner hinanden i struktur og brugervenlighed. Deres forskelle i design, syntaks og funktionalitet gør valget mellem dem til et spørgsmål om formål.

blue arrow to the left
Imaginary Cloud logo

YAML vs JSON: Hvilket er bedre?

Når du vælger mellem JSON- eller YAML-format, skal du bare følge funktionen: Hvad har du brug for dem til at gøre?

JSON har en hurtigere levering da det fungerer perfekt som et simpelt dataudvekslingsformat. Men det er begrænset til de understøttede datatyper, hvilket kan kræve ekstra ressourcer til at håndtere datasæt med et større antal datatypeindstillinger. Det er let at læse, når du er over parenteser og citater, hvilket er en fordel, da de afgrænser specifikke emner, hvilket reducerer risikoen for at analysere fejlfortolkning.

YAML, på den anden side læser næsten ikke som kode. Og den matryoshka-lignende evnen til at inkludere objekter i objekter giver mulighed for større datakompleksitet. Ulempen? En sådan kompleksitet bremser analyserings- og genereringsprocessen. Men med en række komplekse datatyper til rådighed, har det sin appel og er en fantastisk mulighed for at udvide de typer information, der skal stilles til rådighed.

Formålet med og prioriteten af de oplysninger, der skal leveres, er også vigtige, og et logisk hierarki bør defineres, før kodning påbegyndes. Denne tidligere organisation vil definere dokumentets struktur, og hvordan data vil blive præsenteret.

Uanset valget handler det om, hvad dine data skal gøre i sidste ende.

New call-to-action

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Alex Gamela
Alex Gamela

Indholdsforfatter og digital medieproducent med interesse i det symbiotiske forhold mellem teknologi og samfund. Bøger, musik, og guitarer er en konstant.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon