Dengan perkembangan pesat Internet, pemprosesan dan penghantaran data menjadi semakin penting. JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang digunakan secara meluas di Internet untuk menghantar data dalam format teks yang mudah dibaca dan ditulis. Sebagai bahasa pengaturcaraan yang cekap, golang juga menyediakan cara untuk menukar data ke dalam format JSON dengan mudah.
Dalam golang, data boleh ditukar kepada format JSON dengan menulis kod. Secara khususnya, terdapat dua kaedah berikut:
Kaedah 1: Gunakan pengekodan/json perpustakaan standard
Pengekodan/json perpustakaan standard menyediakan kaedah untuk mengekod dan menyahkod format JSON. Mula-mula kita perlu mentakrifkan struktur tersuai, medan yang perlu ditandakan dengan tag json:
taip Person struct {
Name string json:"name"
Age int json:"age"
}
Teg json di sini menentukan nama medan dalam JSON. Seterusnya, kita boleh menukar data jenis Orang ke dalam format JSON dengan menjana tatasusunan bait JSON:
import (
"pengekodan/json"
"fmt"
)
func main() {
orang := Orang{Nama: "Tom", Umur: 18}
data, err := json.Marshal(orang)
if err != nil {
fmt.Println("JSON Marshalling failed:", err) return
}
fmt.Printf("Data JSON:n%sn", data)
}
Hasil keluaran:
Data JSON :
{"name":"Tom","age":18}
Kami juga boleh menggunakan fungsi Unmarshal untuk menyahkod JSON ke dalam struktur:
func main() {
jsonStr := {"name":"Tom","age":18}
var person Person
if err := json.Unmarshal([]byte(jsonStr), &person err != nil {
fmt.Println("JSON Unmarshalling failed:", err) return
}
fmt.Printf("Data Orang Dinyahkod: %+vn", orang)
}
Hasil keluaran:
Data Orang Dinyahkod: {Nama :Tom Age :18}
Kaedah 2: Gunakan pustaka pihak ketiga
Ia juga sangat mudah untuk menggunakan pustaka pihak ketiga untuk menukar data kepada format JSON. Antara yang lebih popular ialah perpustakaan seperti gjson dan jsoniter. Di sini kita mengambil jsoniter sebagai contoh.
Mula-mula tentukan struktur tersuai, sama seperti kaedah 1.
Seterusnya, kita boleh menggunakan fungsi Marshal pustaka jsoniter untuk menukar data jenis Orang ke dalam format JSON, serupa dengan pustaka standard:
import (
"github.com/json - iterator/go"
"fmt"
)
func main() {
// define struct
person := Person{Name: "Tom", Umur: 18 }
// tukar data kepada format json
data, err := jsoniter.Marshal(orang)
if err != nil {
fmt.Println("JSON Marshalling failed:", err) return
}
fmt.Printf("Data JSON:n%sn", data)
}
Hasil keluaran:
Data JSON:
{"name":"Tom " ,"age":18}
Begitu juga, kita juga boleh menggunakan fungsi Unmarshal pustaka jsoniter untuk menyahkod data yang ditukar daripada format JSON:
func main() {
jsonStr: = {"name":"Tom","age":18}
var person Orang
if err := jsoniter.Unmarshal([]byte(jsonStr), &person err != nil {
fmt.Println("JSON Unmarshalling failed:", err) return
}
fmt.Printf("Data Orang Dinyahkod: %+vn", orang)
}
Hasil keluaran:
Data Orang Dinyahkod: {Nama:Tom Umur: 18}
Ringkasan
Dalam golang, kami boleh menggunakan pengekodan/json perpustakaan standard untuk menukar data kepada format JSON atau kami boleh menggunakan perpustakaan pihak ketiga untuk mencapai penukaran yang sama. Perpustakaan yang berbeza berbeza dalam beberapa aspek, jadi anda boleh memilih perpustakaan yang sesuai berdasarkan situasi sebenar anda. Tidak kira kaedah yang digunakan, menukar format JSON adalah sangat mudah.
Atas ialah kandungan terperinci Bagaimana untuk menukar data golang kepada json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!