разбор JSON int64 в go; значения null

Я пытаюсь проанализировать поток json в Go. Я создал упрощенный пример:

 package main
 import (
    "encoding/json"
    "fmt"
 )

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

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

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

это даст мне

go run testmin.go
json: cannot unmarshal null into Go value of type int64

Я нашел nullable int64 в пакет sql, но json, похоже, не в состоянии справиться с этим.

есть ли тип int64 с нулевым значением, который может обрабатывать json? Если возможно, я был бы доволен json null переводится на, -1 или MinValue.

Спасибо за вход, Фабиан!--3-->

1 ответов


просто использовать *int64. Указатель может быть нулевым или указывать на int64 со связанным значением, и они отлично работают с пакетом JSON Go.