为什么无法将Json标签名称声明为与字符串名称相同

时间:2019-07-11 11:09:58

标签: json go null

使用以下代码时,解组json字节数据的结果为null。 我花了3个小时才找到答案。 在我的结构类型中,我为字符串和json标签声明了相同的名称。

这使unmarshel无法获得任何价值。

更改姓名可以解决该问题。但是,为什么会这样呢?以及如何防止这种情况发生?似乎带有go-plus的Atom编辑器也没有突出显示此错误。

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

type FruitBasket struct {
    schedule_id string `json:"schedule_id"`
}

func main() {

    jsonData := []byte(`
  {
      "schedule_id": "999"
  }`)

    var basket FruitBasket
    err := json.Unmarshal(jsonData, &basket)
    if err != nil {
        log.Println(err)
    }
    fmt.Println(basket.schedule_id)

}

运行上面的代码将为您提供空值。也没有错误。

0 个答案:

没有答案