Sobes.tech
Intern

Czym jest serializacja?

sobes.tech AI

Odpowiedź od AI

Serializacja to proces przekształcania struktury danych lub stanu obiektu do formatu, który można zapisać (np. w pliku, bazie danych) lub przesłać (np. przez sieć). Ten format zwykle reprezentuje ciąg bajtów.

Główne cele serializacji:

  • Zapis danych: Pozwala na zapisanie bieżącego stanu obiektu lub struktury do późniejszego odtworzenia.
  • Przesyłanie danych: Ułatwia wymianę danych między różnymi systemami lub komponentami.
  • Kompatybilność: Zapewnia sposób przedstawiania danych, który może być zrozumiały dla różnych aplikacji lub języków programowania.

W Golang często używa się standardowych pakietów do serializacji:

  • encoding/json: Do serializacji/deserializacji danych w formacie JSON.
  • encoding/xml: Do serializacji/deserializacji danych w formacie XML.
  • encoding/gob: Specjalistyczny format serializacji dla Go, który jest szybszy i bardziej wydajny w wymianie danych między aplikacjami Go.
  • encoding/binary: Do pracy z binarnymi reprezentacjami danych.

Przykład serializacji struktury do JSON w 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}

	// Serializacja do JSON
	jsonData, err := json.Marshal(p)
	if err != nil {
		fmt.Println("Błąd podczas serializacji do JSON:", err)
		return
	}
	fmt.Println("Serializowany JSON:", string(jsonData))
}

Proces odwrotny do serializacji to deserializacja (lub marshaling/unmarshaling), w której ciąg bajtów jest konwertowany z powrotem do oryginalnej struktury danych lub obiektu.