Sobes.tech
Intern

Čo je serializácia?

sobes.tech AI

Odpoveď od AI

Serializácia je proces prevodu štruktúry údajov alebo stavu objektu do formátu, ktorý možno uložiť (napríklad do súboru, databázy) alebo preniesť (napríklad cez sieť). Tento formát zvyčajne predstavuje sekvenciu bajtov.

Hlavné ciele serializácie:

  • Uloženie údajov: Umožňuje uložiť aktuálny stav objektu alebo štruktúry na neskoršie obnovenie.
  • Prenos údajov: Uľahčuje výmenu údajov medzi rôznymi systémami alebo komponentmi.
  • Kompatibilita: Zabezpečuje spôsob reprezentácie údajov, ktorý môže byť pochopený rôznymi aplikáciami alebo programovacími jazykmi.

V Golangu sa často používajú štandardné balíky na serializáciu:

  • encoding/json: Na serializáciu/deserializáciu údajov vo formáte JSON.
  • encoding/xml: Na serializáciu/deserializáciu údajov vo formáte XML.
  • encoding/gob: Špecializovaný formát serializácie pre Go, ktorý je rýchlejší a efektívnejší pre výmenu údajov medzi Go aplikáciami.
  • encoding/binary: Na prácu s binárnymi reprezentáciami údajov.

Príklad serializácie štruktúry do JSON v Go:

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func main() {
	p := Person{Name: "Alice", Age: 30}

	// Serializácia do JSON
	jsonData, err := json.Marshal(p)
	if err != nil {
		fmt.Println("Chyba pri serializácii do JSON:", err)
		return
	}
	fmt.Println("Serializovaný JSON:", string(jsonData))
}

Opakom serializácie je deserializácia (alebo marshaling/unmarshaling), pri ktorej sa sekvencia bajtov konvertuje späť na pôvodnú dátovú štruktúru alebo objekt.