使用以下代码时,解组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)
}
运行上面的代码将为您提供空值。也没有错误。