Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mengendalikan Nilai Integer Null Apabila Menghapuskan JSON dalam Go?

Bagaimana Mengendalikan Nilai Integer Null Apabila Menghapuskan JSON dalam Go?

Susan Sarandon
Lepaskan: 2024-11-28 10:12:12
asal
244 orang telah melayarinya

How to Handle Null Integer Values When Unmarshalling JSON in Go?

JSON Marshals Null Integer Values

Dalam Go, menghuraikan strim JSON kadangkala boleh membawa kepada komplikasi, terutamanya apabila berurusan dengan integer dan nilai nol. Mari kita terokai isu biasa dan penyelesaiannya menggunakan jenis nullable.

Masalah:

Apabila menghuraikan data JSON yang mengandungi integer, anda mungkin menghadapi ralat berikut:

json: cannot unmarshal null into Go value of type int64
Salin selepas log masuk

Ralat ini berlaku apabila anda mempunyai integer nullable dalam JSON, yang merupakan pakej Go JSON standard tidak boleh mengendalikan secara langsung.

Penyelesaian:

Untuk menangani isu ini, pertimbangkan untuk menggunakan penunjuk kepada integer. Penunjuk boleh sama ada nil (mewakili nilai nol) atau ia boleh menunjuk kepada integer dengan nilai yang berkaitan. Begini cara untuk melaksanakannya:

import (
    "encoding/json"
    "fmt"
)

var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`)

type jsonobj struct{ World []*int64 }
type World struct{ Data *int64 }

func main() {
    var data jsonobj
    jerr := json.Unmarshal(d, &data)
    if jerr != nil {
        fmt.Println(jerr)
    }

    for _, w := range data.World {
        if w == nil {
            fmt.Println("Got a null value")
        } else {
            fmt.Println(*w)
        }
    }
}
Salin selepas log masuk

Dalam contoh yang diubah suai ini:

  • Kami mentakrifkan penunjuk kepada int64 dalam struct Dunia (*int64) untuk membenarkan integer boleh null.
  • Struktur jsonobj memegang pelbagai penunjuk Dunia, membenarkannya mengendalikan kedua-dua bukan nol dan integer null.

Apabila menghuraikan JSON, ia mengendalikan nilai integer berangka dan null dengan betul dan mencetaknya dengan sewajarnya:

Got a null value
2251799813685312
Salin selepas log masuk

Pendekatan ini menyediakan cara yang mudah dan berkesan untuk mengendalikan nullable integer dalam Go apabila menghuraikan strim JSON.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai Integer Null Apabila Menghapuskan JSON dalam Go?. 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