Go code(jsonTestParse.go)
(this is just a test example I made, please don't argue that I should use list of students in cls struct)
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
type student struct {
ID string `json:"id"`
Name string `json:"name"`
Standard string `json:"std"`
}
type cls struct {
st student `json:"cls"`
}
func getValues() (cls, error) {
var clss cls
dataBytes, err := ioutil.ReadFile("studentclass.json")
if err != nil {
fmt.Printf("File error: %v
", err)
os.Exit(1)
}
err = json.Unmarshal(dataBytes, &clss)
if err != nil {
fmt.Errorf("%s", err)
}
return clss, err
}
func main() {
s, err := getValues()
fmt.Printf("%#v
", s)
fmt.Println(err)
}
Json File (studentclass.json)
{
"cls": {
"id": "1",
"name": "test",
"std": "0"
}
}
When I run this code with go run jsonTestParse.go
it gives me this output:
main.cls{st:main.student{ID:"", Name:"", Standard:""}}
<nil>
Please help me why I'm getting this blank object
main.cls{st:main.student{ID:"", Name:"", Standard:""}}
instead of this
main.cls{st:main.student{ID:"1", Name:"test", Standard:"0"}}
Plus It would be great to help on how to get these values?