JSONの構造を以下の構造と仮定します。
(JSONの構造を伝える際、始点や終端になる記号は省略しない方が良いかと思います)
json
1{
2 "response": {
3 "result": {
4 "3600": [
5 [
6 1594108800,
7 998365,
8 998366,
9 995132,
10 997404,
11 60.74840908,
12 60537449.11674247
13 ],
14 [
15 1594112400,
16 997404,
17 998500,
18 995858,
19 998111,
20 68.54825917,
21 68380129.89276664
22 ]
23 ]
24 },
25 "allowance": { "cost": "hoge" }
26 }
27}
ObjectタイプのフィールドのキーがGoの構造体フィールド名として成立しないタイプのJSON
つまりキー名の先頭文字がアルファベットやアンダースコアではないような
{"3600":...}
というJSONのデコードを受け取る場合は
map[string]HogeType
という型で受けるとよいです。
https://play.golang.org/p/lMdrutXWddn
go
1package main
2
3import (
4 "encoding/json"
5 "fmt"
6 "log"
7)
8
9const src = `
10{
11 "response": {
12 "result": {
13 "3600": [
14 [
15 1594108800,
16 998365,
17 998366,
18 995132,
19 997404,
20 60.74840908,
21 60537449.11674247
22 ],
23 [
24 1594112400,
25 997404,
26 998500,
27 995858,
28 998111,
29 68.54825917,
30 68380129.89276664
31 ]
32 ]
33 },
34 "allowance": { "cost": "hoge" }
35 }
36}
37`
38
39type Response struct {
40 Result map[string][][]float64 `json:"result"`
41}
42
43type JSONResponse struct {
44 Response Response `json:"response"`
45}
46
47func main() {
48 var res JSONResponse
49 if err := json.Unmarshal([]byte(src), &res); err != nil {
50 log.Fatal(err)
51 }
52 fmt.Println(res.Response.Result["3600"][0][1])
53}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 13:53