2

I am trying to learn Go. I am writing a simple program to get values from JSON file in GoLang.

package main

import (
     "encoding/json"
    "fmt"
    "io/ioutil"
    "os"
)
type bands struct {
    id string `json:"id"`
    name  string `json:"name"`
    location  string `json:"location"`
    year  string `json:"year"`
}
func main() {

    bands := getBands()
    fmt.Println(bands)
}

func getBands() []bands {
    raw, err := ioutil.ReadFile("../data/bands.json")
    if err != nil {
        fmt.Println(err.Error())
        os.Exit(1)
    }

    var c []bands
    json.Unmarshal(raw, &c)
    return c
}

Also, below is my JSON File:

[{"id":"1","name": "The Beatles","location": "NY","year": "2012"},
{"id":"2","name": "Nirvana","location": "NY","year": "2010"},
{"id":"3","name": "Metallica","location": "NY","year": "1980"}]

When i am running the file, I am getting blank values.

Thanks for the help.

Dev
  • 69
  • 2
  • 10

1 Answers1

6

The fields must start with uppercase letters.

type bands struct {
    Id       string `json:"id"`
    Name     string `json:"name"`
    Location string `json:"location"`
    Year     string `json:"year"`
}
Grzegorz Żur
  • 47,257
  • 14
  • 109
  • 105