Rumah > Tutorial sistem > LINUX > Pensirian dan penyahserikatan data json

Pensirian dan penyahserikatan data json

王林
Lepaskan: 2024-01-09 11:30:17
ke hadapan
4341 orang telah melayarinya
Pengenalan Nama penuh json ialah tatatanda objek Javascript, dan nama penuh bahasa Cina ialah: tatatanda objek js. Antara protokol bersiri dan penyahserian, terdapat: json, xml, yaml, penampan protokol, dll. Antaranya, json ialah bentuk penghantaran utama data kontrak API bahagian hadapan dan belakang. json menyokong empat jenis data: nilai angka, nilai Boolean, tatasusunan dan objek. Dengan empat jenis data ini, model data yang kompleks boleh dibina.

Dalam bahasa Go, kami boleh menggunakan pustaka standard json untuk melaksanakan pensirilan dan penyahsirilan data. Pustaka ini menyediakan kaedah yang mudah untuk mensiri dan menyahsiri peta, struktur, tatasusunan, kepingan dan jenis data primitif terbina dalam. Dengan menggunakan perpustakaan standard json, kami boleh menukar data ke dalam format json dengan mudah dan menghuraikannya kembali kepada jenis data asal apabila diperlukan. Ini memberikan kami kemudahan besar dalam memproses data.

Di sini, saya akan memberikan tiga contoh untuk menggambarkan penggunaan json. Untuk pemula, anda mungkin sering menggunakan hanya satu objek struktur untuk menerima dan menghantar data. Mari kita lihat contoh khusus di bawah. 1. Gunakan objek struktur untuk menerima data: ``` taip Person struct { Rentetan nama `json:"name"` Age int `json:"age"` } func main() { data := `{"name": "Alice", "umur": 25}` var p Orang err := json.Unmarshal([]bait(data), &p) if err != nil { fmt.Println("Gagal menghuraikan json:", err) kembali

Pensirian dan penyahserikatan data json

Struktur

taip struct Orang {<br> Rentetan nama `json:"name"`<br> Age int `json:"age"`<br> }
<br> fungsi utama() {<br> var (<br> newSetiap Orang<br> bts []bait<br> )<br> setiap:=Orang{<br> Nama: "Lily",<br> Umur: 29,<br> }<br> // Pensirian<br> jika bts, err = json.Marshal(per); log.Fatal(err.Error())<br> kembali<br> }<br>
if err = json.Unmarshal(bts, &newPer); log.Fatal(err.Error())<br> kembali<br> }<br> fmt.Println(newPer)<br> }<br><br> peta

fungsi utama() {

var ( smap = peta[rentetan]int{<br> "Umur": 28,<br> "Jantina": 1,<br> "Tingkat": 12,<br> }<br> newSmap = buat(peta[rentetan]int)<br> bts []bait<br> )<br> jika bts, err = json.Marshal(smap); log.Fatal(err.Error())<br> kembali<br> }<br> if err = json.Umarshal(bts, &newSmap); log.Fatal(err.Error())<br> kembali<br> }<br> fmt.Println(newSmap)<br> }<br><br> <br>Susun atur atau hirisan tatasusunan dinamik<br>

fungsi utama() { var ( umur []int = []int{23, 20, 28, 25, 30}

bts []bait err ralat<br> newAges = buat([]int, len(umur))<br> )<br> jika bts, err = json.Marshal(umur); fmt.Println(err.Error())<br> kembali<br> }<br> if err = json.Unmarshal(bts, &newAges err != nil {<br> fmt.Println(err.Error())<br> kembali<br> }<br> fmt.Println("zaman baharu: ", Zaman baharu)<br> kembali<br> }<br><br> Pemula agak jelas tentang pensirilan json dan penyahserialisasian struktur, tetapi mereka mungkin jarang atau tidak pernah menggunakan dua yang terakhir. <br> <br> <br>Untuk data jenis tatasusunan, tetapi beberapa senario perniagaan bahagian hadapan akan menggunakannya.
Untuk jenis peta, secara amnya apabila antara muka REST pihak ketiga dipanggil pada pelayan bahasa Go, pelayan hanya mahu kod pemulangan yang ditentukan untuk menentukan sama ada panggilan itu berjaya. Pengaturcara tidak mahu menulis definisi keseluruhan struktur struktur, atau mungkin dia malas, jadi dia menggunakan peta[rentetan]antara muka{} untuk menerima data pemulangan. Pada masa ini, selepas menyahsiri melalui Unmarshal dalam pustaka standard json, kod pulangan diperoleh melalui map["err_code"].(int), dan kemudian logik pemprosesan seterusnya yang lain dilakukan.

  • Di sini saya juga ingin menerangkan ciri-ciri yang kadang-kadang saya gunakan apabila menggunakan struktur Ciri nilai tag omitempty yang disokong oleh json struktur, contohnya:
  • taip struct Orang {
  • Rentetan nama `json:"name,omitempty"`
Age int `json:"age"`

}
Ini bermakna apabila nilai teg bagi fungsi omitempty ditetapkan, jika nilai elemen data bagi struktur yang sepadan ialah sifar, ia tidak akan menjadi output. Maksudnya, jika elemen dalam data struktur yang dikembalikan oleh pelayan kosong dan elemen ini tidak dikembalikan ke bahagian hadapan, anda boleh menggunakan atribut nilai tag json untuk omitempty. <br> <br>Di sini kami menyediakan anda perpustakaan penghuraian json yang ditulis oleh Taowen, jurutera kanan Syarikat Didi, yang merupakan yang terpantas di dunia. alamat github: jsoniter. <br> <br> Pengenalan terperinci OpenFermion: klik untuk melihat

Alamat muat turun OpenFermion: klik untuk memuat turun

Atas ialah kandungan terperinci Pensirian dan penyahserikatan data json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:linuxprobe.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan