2012-06-12 21 views
7

私はGoでjsonストリームを解析しようとしています。jsonのint64の解析。 null値

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

これは私sql package

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

私が見つけたnull許容のInt64を与えるだろうが、JSONは、それを処理することができていないようです:私は簡単な例を作成しました。

jsonが処理できるnull可能なint64型はありますか?可能であれば、私はjsonに満足していますnull、-1またはMinValueに翻訳されています。

+0

次の例では、 'var n int64'と' json.Unmarshal( "2251799813685312"、&n) ' –

+0

に短縮することができます。Go 1.1.2でテストしたところ、" null " int型で使用する – nvcnvn

答えて

13

ちょうど*int64を使用し、 ファビアンご入力いただき、ありがとうございます。ポインタはnilでもかまいませんし、関連する値を持つint64を指すことができ、GoのJSONパッケージでうまく動作します。

+0

素晴らしい!ありがとう、私はそれについても考えていませんでした: – kazamatzuri