tali golang 转json

WBOY
WBOYasal
2023-05-13 10:04:073367semak imbas

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))

Kod di atas akan mengeluarkan hasil berikut:

{"name":"Tom","age":29}

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)

Kod di atas akan mengeluarkan hasil berikut:

Tom 29

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)

Kod di atas akan mengeluarkan hasil berikut :

map[name:Tom age:29]

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!

Kenyataan:
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
Artikel sebelumnya:golang http sambungan rapatArtikel seterusnya:golang http sambungan rapat