9

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型はありますか?可能であれば、jsonnullが-1またはMinValueに変換されることに満足しています。

ご意見ありがとうございます、ファビアン

4

2 に答える 2

21

を使用するだけ*int64です。ポインターはnilにすることも、値が関連付けられたint64を指すこともでき、GoのJSONパッケージで正常に機能します。

于 2012-06-12T14:02:41.747 に答える
0

https://github.com/guregu/nullには、対応するJSONシリアル化/逆シリアル化を伴うnull.Intnull.Stringなどが含まれています。

于 2020-11-22T22:51:47.967 に答える