2012-06-12 3 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