Bagaimana untuk Menyahmarshal Medan Rentetan JSON menjadi Sekeping Rentetan di Golang?

Barbara Streisand
Lepaskan: 2024-10-27 05:52:29
asal
295 orang telah melayarinya

How to Unmarshal a JSON String Field into a Slice of Strings in Golang?

Custom Unmarshal with String Split in Golang

Masalah:

Unmarshalling JSON into a Golang struct, di mana satu medan rentetan (cth., "subjek") perlu dipecah menjadi kepingan rentetan berdasarkan pembatas (cth., '-').

Penyelesaian:

Laksanakan unmarshaler tersuai untuk medan kepingan rentetan. Ini melibatkan mencipta jenis data baharu yang melaksanakan antara muka json.Unmarshaler:

<code class="go">type strslice []string

func (ss *strslice) UnmarshalJSON(data []byte) error {
    var s string
    if err := json.Unmarshal(data, &s); err != nil {
        return err
    }
    *ss = strings.Split(s, "-")
    return nil
}</code>
Salin selepas log masuk

Gunakan jenis tersuai ini dalam struct:

<code class="go">type Student struct {
    StudentNumber int      `json:"student_number"`
    Name          string   `json:"name"`
    Subjects      strslice `json:"subjects"`
}</code>
Salin selepas log masuk

Sekarang, apabila menyahmarshaler JSON, "subjek Medan " akan dibahagikan secara automatik kepada sekeping rentetan:

<code class="go">var s Student
err := json.Unmarshal([]byte(src), &s)
fmt.Println(s, err)</code>
Salin selepas log masuk

Output:

{1234567 John Doe [Chemistry Maths History Geography]} <nil>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Medan Rentetan JSON menjadi Sekeping Rentetan di Golang?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!