Here is a similar example: Parsing JSON in GoLang into struct I am getting a json response from the server and I only need to get certain data. I've created a sample code:
package main
import (
"fmt"
"encoding/json"
)
type response struct {
Response []struct {
Stats struct {
A int `json:"a"`
B float64 `json:"b"`
C int `json:"c"`
D float64 `json:"d"`
E float64 `json:"e"`
F float64 `json:"f"`
G float64 `json:"g"`
H float64 `json:"h"`
I float64 `json:"i"`
J float64 `json:"j"`
} `json:"stats"`
Data []struct {
Num0 int64 `json:"0"`
Num1 interface{} `json:"1"`
} `json:"data"`
} `json:"response"`
}
func main() {
src := `
{
"response": [{
"stats": {
"a": 458,
"b": 302.3738,
"c": 0,
"d": 706.777,
"e": 2.423,
"f": 238.73375,
"g": 68.971,
"h": 85.1989781659389,
"i": 84.6381777592766,
"j": 292658.49
},
"data": [
[1453222860000, null],
[1453223160000, 3.769],
[1453223220000, 37.464]
]
}
]
}
`
var g response
json.Unmarshal([]byte(src), &g)
fmt.Println(g.Response[0].Stats)
}
The output I get is
`{458 302.3738 0 706.777 2.423 238.73375 68.971 85.1989781659389 84.6381777592766 292658.49}
`
I want to get certain items from just the stat struct. Let's say I want to print the value of A or J from the stats struct. How do I do that? I don't really need the data struct. The json response I got from the server gave me those data but I dont really need it. Anyway, my question is how do I get only certain items only in the Stats struct?
Any suggestion on how to do this or even improve my structs format? Thanks!