Bagaimana untuk memproses data JSON dalam bahasa Go?
Dalam beberapa tahun kebelakangan ini, format data JSON (JavaScript Object Notation) telah menjadi salah satu format yang paling popular dalam pembangunan web. Bahasa Go menyediakan sokongan yang sangat baik untuk memproses data JSON Artikel ini akan memperkenalkan cara memproses data JSON dalam bahasa Go.
1. Format data JSON
Sebelum memahami cara memproses data JSON dalam bahasa Go, kita perlu memahami format data JSON terlebih dahulu. JSON ialah format pertukaran data ringan berdasarkan Notasi Objek JavaScript dan menyokong berbilang bahasa pengaturcaraan. Berikut ialah contoh data JSON:
{ "name": "张三", "age": 25, "hobbies": ["读书", "旅游", "电影"], "contact": { "telephone": "13512345678", "email": "zs@example.com" } }
Dalam contoh ini, kita dapat melihat bahawa data JSON dikelilingi oleh pendakap kerinting dan kandungannya termasuk empat pasangan nilai kunci, iaitu nama, umur, hobi dan kenalan . Antaranya, nilai nama kunci ialah rentetan, nilai umur kunci ialah nombor, nilai hobi utama ialah tatasusunan, tatasusunan mengandungi tiga rentetan, dan nilai kenalan kunci ialah JSON bersarang. data. Data bersarang tersebut mengandungi dua pasangan nilai kunci, iaitu telefon dan e-mel.
2. Pemprosesan JSON dalam bahasa Go
Dalam bahasa Go, kami boleh memproses data JSON melalui pakej pengekodan/json. Pakej ini menyediakan dua fungsi, Marshal dan Unmarshal, yang boleh digunakan untuk menukar jenis data dalam bahasa Go kepada format JSON atau menukar data format JSON kepada jenis data bahasa Go.
- Fungsi Marshal
Fungsi Marshal digunakan untuk menukar jenis data dalam bahasa Go kepada data format JSON. Fungsi ditakrifkan seperti berikut:
func Marshal(v interface{}) ([]byte, error)
Fungsi ini menerima parameter jenis antara muka v, yang mewakili jenis data bahasa Go untuk ditukar. Fungsi ini mengembalikan tatasusunan bait dan nilai ralat. Jika penukaran berjaya, nilai ralat adalah sifar, jika tidak mesej ralat yang sepadan akan dikembalikan.
Berikut ialah contoh menggunakan fungsi Marshal untuk menukar jenis struktur dalam bahasa Go kepada data dalam format JSON:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { p := Person{Name: "张三", Age: 25} b, err := json.Marshal(p) if err != nil { fmt.Println("转换失败", err) return } fmt.Println(string(b)) }
Dalam contoh ini, kami mentakrifkan struktur bernama Person Body type , yang mengandungi dua medan Nama dan Umur serta menggunakan teg json:"name"
dan json:"age"
pada medan struktur Teg ini digunakan untuk menentukan nama utama medan yang sepadan apabila menukar kepada data format JSON.
Dalam fungsi utama, kami mencipta contoh p jenis Orang, dan kemudian menggunakan fungsi json.Marshal untuk menukar contoh kepada data format JSON Selepas penukaran berjaya, hasilnya dicetak ke konsol.
Hasil output adalah seperti berikut:
{"name":"张三","age":25}
Seperti yang anda lihat, jenis Orang dalam bahasa Go ditukar kepada data format JSON.
- Fungsi Unmarshal
Fungsi Unmarshal digunakan untuk menukar data format JSON kepada jenis data dalam bahasa Go. Fungsi ini ditakrifkan seperti berikut:
func Unmarshal(data []byte, v interface{}) error
Fungsi ini menerima dua parameter Data parameter pertama mewakili data format JSON yang akan ditukar, iaitu tatasusunan bait Parameter kedua v mewakili data yang akan ditukar Jenis data bahasa Go, yang merupakan jenis antara muka.
Berikut ialah contoh menggunakan fungsi Unmarshal untuk menukar data format JSON kepada jenis struktur dalam bahasa Go:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { s := `{"name":"张三","age":25}` var p Person err := json.Unmarshal([]byte(s), &p) if err != nil { fmt.Println("转换失败", err) return } fmt.Println(p) }
Dalam contoh ini, kami mula-mula mentakrifkan jenis Struktur Orang yang dinamakan, kemudian dalam fungsi utama, kami mencipta data format JSON, yang konsisten dengan data dalam contoh sebelumnya, dan kemudian menggunakan fungsi json.Unmarshal untuk menukar data format JSON ke dalam jenis Orang bahasa Go, selepas penukaran berjaya, hasilnya akan dicetak ke konsol.
Hasil output adalah seperti berikut:
{张三 25}
Seperti yang anda lihat, data format JSON ditukar kepada jenis Orang dalam bahasa Go.
Ringkasnya, bahasa Go menyediakan sokongan yang sangat mudah untuk memproses data dalam format JSON. Menggunakan fungsi Marshal dan Unmarshal dalam pakej pengekodan/json, anda boleh menukar jenis data dalam bahasa Go kepada format JSON dengan mudah atau menukar data format JSON kepada jenis data bahasa Go.
Atas ialah kandungan terperinci Bagaimana untuk memproses data JSON dalam bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Artikel ini membincangkan menguruskan kebergantungan modul Go melalui Go.Mod, meliputi spesifikasi, kemas kini, dan resolusi konflik. Ia menekankan amalan terbaik seperti versi semantik dan kemas kini biasa.

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...
