一尘不染

go中int64的json解析;空值

go

我正在尝试在Go中解析json流。我创建了一个简化的示例:

 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

我在sql包中发现了一个可为null的int64
,但是json似乎无法处理它。

json是否可以处理可为null的int64类型?如果可能的话,我会对将JSON null 转换为-1或MinValue 感到满意。

谢谢您的投入,Fabian


阅读 617

收藏
2020-07-02

共1个答案

一尘不染

只需使用一个*int64。指针可以为nil,也可以指向具有关联值的int64,并且它们可以与Go的JSON包一起正常工作。

2020-07-02