Golang Null类型和json.Decode()

msc*_*ett 3 json go

我目前无法找到解决此问题的方法.如果我有一个结构,我想用http.quest中的json填充,我无法告诉例如实际传递了什么值的某些值.例如,如果我传入一个空的json对象并在看起来像这样的结构上运行json.Decode ...

var Test struct {
        Number int `json:"number"`
}
Run Code Online (Sandbox Code Playgroud)

我现在有一个json对象,据说传递的是一个数字键和一个零值,实际上我宁愿让这个返回什么都没有.是否提供了另一种方法,它实际上允许我查看传入的JSON是什么.

对不起,我一直在试图弄清楚这几天如何,这让我疯了.

谢谢你的帮助.

编辑:

我这样做是为了描述我正在谈论的内容http://play.golang.org/p/aPFKSvuxC9

One*_*One 8

您可以使用指针,例如:

func main() {
    var jsonBlob = []byte(`[
        {"Name": "Platypus"},
        {"Name": "Quoll",    "Order": 100}
    ]`)
    type Animal struct {
        Name  string 
        Order *int   
    }
    var animals []Animal
    err := json.Unmarshal(jsonBlob, &animals)
    if err != nil {
        fmt.Println("error:", err)
    }
    for _, a := range animals {
        if a.Order != nil {
            fmt.Printf("got order, %s : %d\n", a.Name, *a.Order)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我的提示完全忘记了你从Java学到的一切,也忘记了语言曾经存在过.Go是迄今为止我学过的最快,最干净的语言. (3认同)