Sobes.tech
Intern

Mis on serialiseerimine?

sobes.tech AI

Vastus AI-lt

Serialiseerimine on protsess, mille käigus andmestruktuuri või objekti olek muudetakse formaadiks, mida saab salvestada (näiteks faili, andmebaasi) või edastada (näiteks võrgus). See formaat on tavaliselt baitide jada.

Serialiseerimise peamised eesmärgid:

  • Andmete salvestamine: võimaldab salvestada objekti või struktuuri praeguse oleku hilisemaks taastamiseks.
  • Andmete edastamine: lihtsustab andmete vahetamist erinevate süsteemide või komponentide vahel.
  • Ühilduvus: tagab andmete esitamise viisi, mida mõistavad erinevad rakendused või programmeerimiskeeled.

Golangis kasutatakse sageli standardpakette serialiseerimiseks:

  • encoding/json: andmete serialiseerimine/deserialiseerimine JSON-formaadis.
  • encoding/xml: andmete serialiseerimine/deserialiseerimine XML-formaadis.
  • encoding/gob: spetsiaalne serialiseerimisvorming Go jaoks, mis on kiirem ja tõhusam andmevahetuseks Go rakenduste vahel.
  • encoding/binary: tööks binaarsete andmete esitlusega.

Näide struktuuri serialiseerimisest JSON-formaadis Go keeles:

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}

	// Serialiseerimine JSON-formaadis
	jsonData, err := json.Marshal(p)
	if err != nil {
		fmt.Println("Viga marshallingus JSON-ks:", err)
		return
	}
	fmt.Println("Serialiseeritud JSON:", string(jsonData))
}

Serialiseerimise vastandprotsess on deserialiseerimine (või marshaling/unmarshaling), mille käigus baitide jada muudetakse tagasi algseks andmestruktuuriks või objektiks.