Моя цель - прочитать файл JSON. Хотя следующая программа прекрасно читает файл, значение поля id
неверно. id
значение поля 0
для всех прочитанных объектов.
Пример JSON содержимое файла:
{
"users" : [
{
"id" : "1",
"name" : "Matt Hayden"
},
{
"id" : "2",
"name" : "David Warner"
},
]
}
JSON программа для чтения файлов в Golang
type Schema struct {
Id int `json:"id"`
Name string `json:"name"`
}
func reader() {
fileName := "./input.json"
jsonFile, fileErr := os.Open(fileName)
if fileErr != nil {
_ = errors.Errorf("failed to open file %s : %v", fileName, fileErr)
}
defer jsonFile.Close()
bytesRead, readErr := ioutil.ReadAll(jsonFile)
if readErr != nil {
_ = errors.Errorf("failed to read json file %s : %v", fileName, readErr)
}
var sch Schema
unMarshalErr := json.Unmarshal(bytesRead, &sch)
if unMarshalErr != nil {
_ = errors.Errorf("failed to unmarshal JSON bytes : %v", unMarshalErr)
}
fmt.Printf("%+v", sch)
}
Фактический результат:
{Users:[{Id:0 Name:Matt Hayden} {Id:0 Name:David Warner}]}
Ожидаемый результат:
{Users:[{Id:1 Name:Matt Hayden} {Id:2 Name:David Warner}]}