Rumah > pembangunan bahagian belakang > Golang > tali golang 转json

tali golang 转json

WBOY
Lepaskan: 2023-05-13 10:04:07
asal
3332 orang telah melayarinya

Dalam golang, untuk menukar jenis rentetan kepada objek json, anda boleh menggunakan pakej json dalam perpustakaan standard.

Pertama, kita boleh menggunakan fungsi json.Marshal() untuk menukar objek dalam golang kepada rentetan format json. Contohnya:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

p := Person{Name: "Tom", Age: 29}
jsonStr, err := json.Marshal(p)
if err != nil {
    fmt.Println("json.Marshal failed:", err)
}

fmt.Println(string(jsonStr))
Salin selepas log masuk

Kod di atas akan mengeluarkan hasil berikut:

{"name":"Tom","age":29}
Salin selepas log masuk

Seterusnya, kita boleh menggunakan fungsi json.Unmarshal() untuk menukar rentetan json kepada objek dalam golang. Contohnya:

jsonStr := `{"name":"Tom","age":29}`

var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(p.Name, p.Age)
Salin selepas log masuk

Kod di atas akan mengeluarkan hasil berikut:

Tom 29
Salin selepas log masuk

Perlu diingat bahawa apabila menghuraikan json, []parameter jenis bait digunakan, jadi jenis mandatori diperlukan Penukaran menukar jenis rentetan kepada []jenis bait.

Selain itu, anda juga boleh terus menggunakan fungsi json.NewDecoder() untuk menghuraikan rentetan format json ke dalam objek json, contohnya:

jsonStr := `{"name":"Tom","age":29}`

var data interface{}
decoder := json.NewDecoder(strings.NewReader(jsonStr))
err := decoder.Decode(&data)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(data)
Salin selepas log masuk

Kod di atas akan mengeluarkan hasil berikut :

map[name:Tom age:29]
Salin selepas log masuk

Dengan cara ini, kita boleh menggunakan pakej json perpustakaan standard dalam golang untuk menukar jenis rentetan kepada objek json.

Atas ialah kandungan terperinci tali golang 转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