Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menukar data golang kepada json

Bagaimana untuk menukar data golang kepada json

PHPz
Lepaskan: 2023-04-24 10:07:00
asal
2576 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

}
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
Salin selepas log masuk
Salin selepas log masuk

}

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
Salin selepas log masuk
Salin selepas log masuk

}

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
Salin selepas log masuk
Salin selepas log masuk

}

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan