Sobes.tech
Intern

Serializatsiya nima?

sobes.tech AI

AIdan javob

Serializatsiya — bu ma'lumotlar tuzilmasini yoki ob'ekt holatini saqlash (masalan, faylga, ma'lumotlar bazasiga) yoki uzatish (masalan, tarmoq orqali) mumkin bo'lgan formatga o'zgartirish jarayonidir. Bu format odatda baytlar ketma-ketligini ifodalaydi.

Serializatsiyaning asosiy maqsadlari:

  • Ma'lumotlarni saqlash: Ob'ekt yoki tuzilmaning hozirgi holatini keyinchalik tiklash uchun saqlash imkonini beradi.
  • Ma'lumotlarni uzatish: Turli tizimlar yoki komponentlar o'rtasida ma'lumot almashishni osonlashtiradi.
  • Moslik: Ma'lumotlarni turli ilovalar yoki dasturlash tillari tushunadigan tarzda taqdim etish imkonini beradi.

Golangda, odatda, serializatsiya uchun standart paketlar ishlatiladi:

  • encoding/json: JSON formatida ma'lumotlarni serializatsiya qilish/deserialize qilish uchun.
  • encoding/xml: XML formatida ma'lumotlarni serializatsiya qilish/deserialize qilish uchun.
  • encoding/gob: Go uchun maxsus serializatsiya formati bo'lib, Go ilovalari o'rtasida ma'lumot almashishda tez va samarali.
  • encoding/binary: Binarny ma'lumotlar bilan ishlash uchun.

Go'da struktura JSON formatida serializatsiya qilish misoli:

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}

	// JSON ga serializatsiya qilish
	jsonData, err := json.Marshal(p)
	if err != nil {
		fmt.Println("JSON ga o'tkazishda xato:", err)
		return
	}
	fmt.Println("Serializatsiya qilingan JSON:", string(jsonData))
}

Serializatsiya jarayonining teskari bosqichi — deserializatsiya (yoki marshaling/unmarshaling), bu yerda baytlar ketma-ketligi qayta asl ma'lumotlar tuzilmasiga yoki ob'ektga aylantiriladi.