Вот аналогичный пример: Parsing JSON in GoLang into struct Я получаю ответ json от сервера, и мне нужно только получить определенные данные. Я создал пример кода:Как разобрать структуры в golang и распечатать элементы из структуры?
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)
}
Выход я получаю
`{458 302.3738 0 706.777 2.423 238.73375 68.971 85.1989781659389 84.6381777592766 292658.49}
`
Я хочу, чтобы получить определенные элементы из только стат структуры. Предположим, я хочу напечатать значение A или J из структуры статистики. Как мне это сделать? Мне действительно не нужна структура данных. Ответ json, который я получил с сервера, дал мне эти данные, но мне это действительно не нужно. В любом случае, мой вопрос заключается в том, как получить только определенные элементы только в структуре Stats?
Любое предложение о том, как это сделать или даже улучшить формат моей структуры? Спасибо!
Вам не нужно просто добавить '.A' в конец текущей печати, чтобы получить поле' A'? – squiguy
Я пытался это сделать, но по какой-то причине это не сработало. Во всяком случае, спасибо за помощь. Комментарий ниже решил мою проблему. – shishh03