JSON / Decoding JSON from a file / Essential Go

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "bytes" "encoding/json" "fmt" "io" "log" "os" ) type Student struct { Name string Standard int `json:"Standard"` } func decodeFromReader(r io.Reader) ([]*Student, error) { var res []*Student dec := json.NewDecoder(r) err := dec.Decode(&res) if err != nil { return nil, err } return res, nil } func decodeFromString(s string) ([]*Student, error) { r := bytes.NewBufferString(s) return decodeFromReader(r) } func decodeFromFile(path string) ([]*Student, error) { f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() return decodeFromReader(f) } const jsonStr = ` [ { "Name" : "John Doe", "Standard" : 4 }, { "Name" : "Peter Parker", "Standard" : 11 }, { "Name" : "Bilbo Baggins", "Standard" : 150 } ] ` func main() { // studentList, err := decodeFromFile("data.json") studentList, err := decodeFromString(jsonStr) if err != nil { log.Fatalf("decodeFromString() failed with '%s'\n", err) } for _, student := range studentList { fmt.Printf("Student: %s, standard: %d\n", student.Name, student.Standard) } }
Editor Settings
Theme
Key bindings
Full width
Lines