Kihagyás

Adatleíró nyelvek

A JSON és YAML együttesen adatleíró formátumoknak (vagy adatleíró nyelveknek) nevezhetők. Ezek a formátumok az adatok struktúrált és egyértelmű leírására szolgálnak, amelyek könnyen feldolgozhatók különböző rendszerek és programozási nyelvek által.

JavaScript Object Notation (JSON)

A JSON (JavaScript Object Notation) egy könnyű adatcsere formátum, amely egyszerű szöveges formában írja le az adatokat, így emberi olvasásra és gépi feldolgozásra egyaránt alkalmas. Széles körben használják a különböző programozási nyelvek közötti adatcsere megkönnyítésére, különösen webes alkalmazások esetében.

JSON struktúra

A JSON struktúrája kulcs-érték párokra épül, ahol a kulcsok mindig sztringek, az értékek pedig lehetnek sztringek, számok, objektumok, tömbök, igaz/hamis (boolean) értékek vagy null. A kulcsokat és értékeket kettőspont választja el, míg a kulcs-érték párokat vessző választja el egymástól. Az objektumokat kapcsos zárójelek {} közé helyezzük.

Egyszerű JSON objektum

1
2
3
4
5
{
    "name": "John",
    "age": 30,
    "city": "New York"
}

Tömbök a JSON-ban

A JSON-ban tömbök segítségével több adatot is tárolhatunk egyetlen kulcs alatt. A tömbök szögletes zárójelek [] között helyezkednek el, és az elemeket vesszővel választjuk el egymástól.

Például egy tömböt tartalmazó JSON objektum

1
2
3
4
5
6
{
    "name": "John",
    "age": 30,
    "city": "New York",
    "children": ["Ann", "Billy"]
}

Több objektum tárolása

JSON tömbökben több ugyanolyan struktúrájú objektumot is tárolhatunk. Ez különösen hasznos, ha egy adathalmazban több entitást szeretnénk leírni.

Például több objektumot tartalmazó JSON tömb

[
    {
        "name": "John",
        "age": 30,
        "city": "New York",
        "children": ["Ann", "Billy"]
    },
    {
        "name": "Jane",
        "age": 25,
        "city": "New York",
        "children": ["Tom"]
    }
]

Objektbe ágyazott struktúrák

A JSON támogatja az objektumok beágyazását más objektumokba, amelyek így hierarchikus struktúrákat hoznak létre. Az objektumokat egymásba ágyazva tudjuk leírni a komplex adatstruktúrákat.

Például beágyazott objektumok a JSON-ban

[
    {
        "name": "John",
        "age": 30,
        "city": "New York",
        "children": [
            {
                "name": "Ann",
                "age": 5
            },
            {
                "name": "Billy",
                "age": 3
            }
        ]
    },
    {
        "name": "Jane",
        "age": 25,
        "city": "New York",
        "children": []
    }
]

JSON előnyei

  • Egyszerűség: Könnyen olvasható és írható, ami különösen előnyös fejlesztők számára.
  • Nyelvfüggetlenség: Bár a JSON formátumot JavaScript-ből származtatják, a legtöbb modern programozási nyelv támogatja.
  • Széleskörű alkalmazás: Használata elterjedt az API-kban, webes szolgáltatásokban és adatbázis-kezelésben.

A JSON tehát ideális eszköz az adatcsere megvalósítására különböző rendszerek között, mivel egyszerre biztosítja a szerkezetiséget és az egyszerűséget.

YAML Ain't Markup Language (YAML)

A YAML (Yet Another Markup Language, később átnevezve YAML Ain't Markup Language-re) egy könnyen olvasható adatleíró formátum, amelyet adatstruktúrák meghatározására és konfigurációs fájlok létrehozására használnak. Egyszerűsége miatt népszerűvé vált különböző alkalmazásokban, különösen konfigurációs fájlok kezelésében.

YAML struktúra

A YAML egyszerű és könnyen olvasható szintaxist használ, amely a behúzásokra és az új sorokra támaszkodik a struktúrák meghatározásában. Az adatokat kulcs-érték párok formájában tárolja, ahol a kulcsok és az értékek közötti kapcsolatot kettőspont jelzi.

Például egy egyszerű YAML dokumentum így néz ki

1
2
3
name: John
age: 30
city: New York

Listák a YAML-ban

A YAML-ban listákat egyszerűen létrehozhatunk, ahol minden listaelemet egy kötőjel és egy szóköz jelöl. A listaelemek a következő sorokban, behúzással vannak felsorolva.

Például

1
2
3
4
5
6
name: John
age: 30
city: New York
children:
- Ann
- Billy

Beágyazott struktúrák

A YAML támogatja a beágyazott struktúrákat, ahol egy kulcs értéke egy másik kulcs-érték párokból álló objektum lehet. Az ilyen struktúrákat behúzással jelöljük.

Például

name: John
age: 30
address:
city: New York
zip: 10001
children:
- name: Ann
    age: 5
- name: Billy
    age: 3

Több dokumentum egy fájlban

YAML fájlokban több dokumentumot is tárolhatunk, amelyeket három kötőjel (---) választ el egymástól.

Például

1
2
3
4
5
6
7
8
---
name: John
age: 30
city: New York
---
name: Jane
age: 25
city: San Francisco

YAML előnyei

  • Olvashatóság: A YAML szintaxis nagyon közel áll a természetes nyelvhez, ami megkönnyíti az emberek számára az olvasást és megértést.
  • Egyszerűség: Kevesebb szintaktikai zajt tartalmaz, mint más adatleíró formátumok, mint például az XML vagy JSON.
  • Flexibilitás: Különféle adatstruktúrákat képes kezelni, mint például objektumokat, listákat és beágyazott struktúrákat.

A YAML tehát ideális választás konfigurációs fájlok és más, könnyen olvasható adatstruktúrák létrehozására, mivel egyszerre biztosítja a szerkezetiséget és az egyszerűséget.

JSON vs. YAML: Összehasonlítás

A JSON és a YAML mindkét esetben adatleíró formátumok, amelyek struktúrált adatok tárolására és feldolgozására szolgálnak. Mindkettőnek megvannak a maga előnyei és alkalmazási területei, amelyeket érdemes figyelembe venni a választás során.

Tulajdonság JSON YAML
Teljes név JavaScript Object Notation YAML Ain't Markup Language
Szintaxis Szögletes zárójelek, kapcsos zárójelek, kettőspontok és idézőjelek használata Kötőjelek, kettőspontok és behúzások használata
Olvashatóság Szintaktikailag szigorú, nehezebb olvasni emberi szemmel Emberközpontú, könnyen olvasható és írható
Adatszerkezet Kulcs-érték párok, tömbök, objektumok Kulcs-érték párok, tömbök, beágyazott struktúrák
Típusú értékek Számok, sztringek, objektumok, tömbök, true, false, null Számok, sztringek, objektumok, tömbök, true, false, null, dátumok
Kiterjesztés .json .yaml vagy .yml
Komentárok Nem támogatott Támogatott, # karakterrel kezdődő sorok
Nyelvfüggetlenség JavaScript-ból származik, de nyelvfüggetlen Nyelvfüggetlen, széles körben használt konfigurációs nyelvekben
Használat Webes API-k, adatátvitel, konfigurációk Konfigurációs fájlok, adatok tárolása, CI/CD folyamatok
Fejlesztői támogatás Szinte minden programozási nyelv támogatja Szinte minden programozási nyelv támogatja
Adat mérete Rövidebb, kevesebb fehér karakter használata Hosszabb lehet a behúzások és kommentárok miatt
Tanulási görbe Egyszerűbb a programozók számára Könnyebb a nem-programozók számára
Sorozatok és blokkok Sorozatok és objektumok külön zárójelekben Blokkok behúzással, sorozatok kötőjellel
Multi-dokumentum Nem támogatott Támogatott, dokumentumokat --- választja el

Összegzés

  • JSON: Ideális választás, ha gyors adatátvitelre és könnyű integrációra van szükség a különböző rendszerek között. Szintaxisát a programozók könnyen megértik, és széles körben használják webes API-kban, adatbázisokban és más adatátviteli folyamatokban.
  • YAML: A YAML kiválóan alkalmas konfigurációs fájlok kezelésére, mivel emberi olvasásra tervezett, egyszerűbb szintaxisával kényelmesebb lehet nagyobb, komplex adatstruktúrák kezelésére. Támogatja a kommentárokat, és lehetővé teszi több dokumentum tárolását egyetlen fájlban.

Mindkét formátumnak megvannak a maga előnyei és ideális felhasználási területei, így a választás a konkrét projekt igényeitől függ.