Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mensiri dan Menyahserikan Struktur dengan Cekap dalam Go Menggunakan GOB dan Base64?

Bagaimanakah Saya Boleh Mensiri dan Menyahserikan Struktur dengan Cekap dalam Go Menggunakan GOB dan Base64?

Susan Sarandon
Lepaskan: 2024-12-04 08:08:13
asal
338 orang telah melayarinya

How Can I Efficiently Serialize and Deserialize Structs in Go Using GOB and Base64?

Pensirilan dan Penyahserilan yang Cekap dalam Go

Golang menyediakan pelbagai pendekatan untuk mensiri dan menyahsiri struct menjadi rentetan. Apabila bekerja dengan struktur kompleks seperti struct Sesi, menggunakan pendekatan yang memastikan kesetiaan data sambil mengekalkan prestasi adalah penting.

Menggunakan GOB dan Base64

Satu kaedah yang berkesan ialah dengan gunakan pengekod GOB dan pengekodan base64. Begini cara anda boleh mencapai ini:

import (
    "encoding/base64"
    "encoding/gob"
    "bytes"
)

// Custom type for serialization
type Session struct {
    Properties map[string]interface{}
    Permissions []int64
}

// GOB encoder
func ToGOB64(m Session) string {
    b := bytes.Buffer{}
    e := gob.NewEncoder(&b)
    err := e.Encode(m)
    if err != nil {
        panic(err)
    }
    return base64.StdEncoding.EncodeToString(b.Bytes())
}

// GOB decoder
func FromGOB64(str string) Session {
    m := Session{}
    by, err := base64.StdEncoding.DecodeString(str)
    if err != nil {
        panic(err)
    }
    b := bytes.Buffer{}
    b.Write(by)
    d := gob.NewDecoder(&b)
    err = d.Decode(&m)
    if err != nil {
        panic(err)
    }
    return m
}
Salin selepas log masuk

Untuk menyokong jenis tersuai (dalam kes ini, Sesi), anda boleh mendaftarkannya dengan pengekod GOB:

func init() {
    gob.Register(Session{})
}
Salin selepas log masuk

Lain-lain Format Siri

Jika GOB tidak sesuai, terdapat format siri alternatif tersedia dalam Go, seperti JSON, XML dan protobuf. Setiap format menawarkan kelebihan dan pertukaran yang berbeza.

Prestasi

Prestasi penyirian dan penyahsirian sebahagian besarnya bergantung pada saiz data dan format yang dipilih. GOB cenderung untuk menjadi agak pantas, manakala JSON dan XML boleh menjadi lebih perlahan tetapi lebih boleh dibaca oleh manusia. Menanda aras format berbeza boleh membantu menentukan pilihan terbaik untuk aplikasi khusus anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri dan Menyahserikan Struktur dengan Cekap dalam Go Menggunakan GOB dan Base64?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan