golang json转string

WBOY
Lepaskan: 2023-05-13 11:05:07
asal
1950 orang telah melayarinya

Go ialah bahasa pengaturcaraan moden yang direka dengan kesederhanaan, kecekapan dan kemudahan penggunaan dalam fikiran. Salah satu ciri bahasa Go ialah keupayaannya untuk mengendalikan pelbagai format data dengan mudah, termasuk JSON.

Dalam Go, JSON ialah format data yang sangat biasa dan kami selalunya perlu menukar data JSON kepada rentetan. Dalam artikel ini, kami akan memperkenalkan cara menukar JSON kepada rentetan menggunakan bahasa Go.

Pertama sekali, kita perlu tahu bahawa terdapat dua kaedah pemprosesan JSON yang biasa dalam bahasa Go: pengekodan JSON dan penyahkodan JSON.

Pengekodan JSON menukar jenis data Go kepada rentetan JSON, manakala JSON menyahkod rentetan JSON ke dalam jenis data Go. Dalam artikel ini, kami akan menumpukan pada pelaksanaan pengekodan JSON.

Kaedah untuk menukar JSON kepada rentetan menggunakan bahasa Go adalah sangat mudah. Kita boleh menggunakan fungsi json.Marshal() dalam perpustakaan standard untuk mencapai ini.

Penggunaan fungsi ini sangat mudah, kita hanya perlu menghantar jenis data Go untuk dikodkan sebagai parameter kepada fungsi Marshal(). Sebagai contoh, katakan kita mempunyai data JSON berikut:

{
    "name": "Jack",
    "age": 25,
    "isStudent": true,
    "hobbies": ["reading", "swimming", "traveling"]
}
Salin selepas log masuk

Kita boleh mengekodnya ke dalam rentetan menggunakan kod berikut:

import (
    "encoding/json"
    "fmt"
)

func main() {
    data := map[string]interface{}{
        "name":      "Jack",
        "age":       25,
        "isStudent": true,
        "hobbies":   []string{"reading", "swimming", "traveling"},
    }

    result, err := json.Marshal(data)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(result))
}
Salin selepas log masuk

Simpan kod di atas ke dalam fail main.go dan laksanakan, Kami akan mendapat output berikut:

{"age":25,"hobbies":["reading","swimming","traveling"],"isStudent":true,"name":"Jack"}
Salin selepas log masuk

Apabila menggunakan fungsi json.Marshal() untuk menukar data JSON kepada rentetan, perlu diingatkan bahawa kami perlu menyimpan data JSON ke dalam pembolehubah jenis interface{}, dan, memandangkan Kunci JSON adalah daripada jenis rentetan, jadi kami menggunakan map[string]interface{} untuk mewakili objek JSON.

Selain itu, perlu diingatkan bahawa apabila kita menggunakan fungsi json.Marshal() untuk mengekod data ke dalam JSON, pembolehubah yang dieksport dalam Go (iaitu pembolehubah dengan huruf pertama dibesarkan) secara automatik akan ditukar kepada huruf besar dalam JSON Nama utama yang bermula dengan, dan pembolehubah yang tidak dieksport (iaitu, pembolehubah dengan huruf pertama dalam huruf kecil) tidak akan dikodkan.

Sebagai contoh, jika kita mentakrifkan struktur berikut:

type User struct {
    Name      string
    Age       int
    IsStudent bool
    Hobbies   []string
}
Salin selepas log masuk

maka, apabila menukar struktur kepada rentetan JSON, kita perlu menukarnya kepada jenis map[string]interface{}, jika tidak, pengkompil Go menang tidak dapat menukarnya kepada rentetan JSON.

Ringkasnya, menukar JSON kepada rentetan menggunakan bahasa Go adalah sangat mudah, kita hanya perlu menggunakan fungsi json.Marshal(). Fungsi ini boleh menukar mana-mana jenis data Go kepada rentetan JSON. Sudah tentu, apabila menggunakan fungsi ini, kita perlu ambil perhatian bahawa nama kunci JSON mestilah daripada jenis rentetan, jika tidak pengekodan akan gagal.

Atas ialah kandungan terperinci golang json转string. 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