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
Susan Sarandonasal
2024-11-28 10:12:12270semak imbas

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

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

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

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!

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