Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah kaedah bersiri dan deserialisasi dalam golang

Apakah kaedah bersiri dan deserialisasi dalam golang

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2023-12-18 10:11:51931semak imbas

Pensirian dan penyahsirilan dalam bahasa Go boleh dicapai dengan menukar data ke dalam format strim bait Kaedah biasa termasuk "pensirilan dan penyahsirian JSON", "pensirilan dan penyahserikan XML", dan "jujukan gob" Empat jenis: "Pensirilan dan penyahsiran Penampan Protokol. " dan "Penyirian dan penyahserikatan Penampan Protokol": 1. Gunakan "json.Marshal()" untuk mensirikan struktur data ke dalam strim bait dalam format JSON; 2. Gunakan xml.Marshal( ) menyerikan struktur data ke dalam strim bait dalam Format XML, dsb.

Apakah kaedah bersiri dan deserialisasi dalam golang

Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.

Dalam bahasa Go, pensirilan dan penyahsirian biasanya dilaksanakan dengan menukar data kepada aliran bait (atau format lain yang boleh diangkut). Berikut ialah beberapa kaedah pensirilan dan penyahsirilan yang biasa digunakan:

  1. Pensirilan dan penyahsirilan JSON: Bahasa Go mempunyai pengekodan/json perpustakaan standard terbina dalam dan anda boleh menggunakan json.Marshal() untuk mensiri struktur data ke dalam bait format JSON strim, gunakan json.Unmarshal() untuk menyahsiri strim bait format JSON ke dalam struktur data.
import "encoding/json"

// 序列化为JSON
data, err := json.Marshal(obj)

// 反序列化JSON
err = json.Unmarshal(data, &obj)
  1. Siri dan penyahserilan XML: Bahasa Go mempunyai pengekodan/xml pustaka standard terbina dalam Anda boleh menggunakan xml.Marshal() untuk mensiri struktur data ke dalam aliran bait dalam format XML dan gunakan xml.Unmarshal(. ) untuk Menyahseri strim bait berformat XML ke dalam struktur data.
import "encoding/xml"

// 序列化为XML
data, err := xml.Marshal(obj)

// 反序列化XML
err = xml.Unmarshal(data, &obj)
  1. gob bersiri dan penyahsiri: Bahasa Go mempunyai pengekodan/gob perpustakaan standard terbina dalam Anda boleh menggunakan gob.NewEncoder() dan gob.NewDecoder() untuk membuat pengekod dan penyahkod, dan masing-masing memanggil Encode() dan Decode. . () kaedah untuk bersiri dan desirialisasi.
import "encoding/gob"

// 序列化为字节流
var buffer bytes.Buffer
encoder := gob.NewEncoder(&buffer)
err = encoder.Encode(obj)
data := buffer.Bytes()

// 反序列化字节流
decoder := gob.NewDecoder(bytes.NewReader(data))
err = decoder.Decode(&obj)
  1. Protocol Buffers (protobuf) bersiri dan penyahserilan: Bahasa Go menyediakan perpustakaan pihak ketiga github.com/golang/protobuf/proto, yang boleh menggunakan protokol protobuf untuk pensirilan dan penyahsiran yang cekap.
import "github.com/golang/protobuf/proto"

// 序列化为字节流
data, err := proto.Marshal(obj)

// 反序列化字节流
err = proto.Unmarshal(data, obj)

Di atas adalah beberapa kaedah bersiri dan penyahserilan yang biasa digunakan. Pilih kaedah yang sesuai mengikut keperluan dan senario tertentu.

Atas ialah kandungan terperinci Apakah kaedah bersiri dan deserialisasi dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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