2012-06-12 14 views
7

Git'te bir json akışını ayrıştırmaya çalışıyorum.json ayrışması; null değerleri

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

bu bana sql package yılında

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

buldum bir null Int64 verecektir ama json idare edebilmek için görünmüyor: Ben basitleştirilmiş bir örnek oluşturduk.

Json'un üstesinden gelebilecek null bir int64 türü var mı? Mümkünse, -1 veya MinValue'a çevrilmiş olan json null ile mutlu olurdum.

+0

Bir dahaki sefere, örnek "var n int64" ve "json.Unmarshal" ("2251799813685312", & n) ' –

+0

için kısaltılabilir, sadece bilmenizi isteriz, Git 1.1.2 ile test edin," null "olabilir int tipi – nvcnvn

cevap

13

Sadece *int64 kullanın Fabian girişiniz için teşekkür ederiz. Bir işaretçi sıfır olabilir veya ilişkili bir değerle bir int64'e işaret edebilir ve Go's JSON paketi ile iyi çalışır.

+0

ile kullanın splendid! Teşekkürler, ben bile düşünmedim: / – kazamatzuri