如何在 Golang 中解析未知 MAP 结构 JSON | 格塔里

格塔里

一个不负责任的教程博客

0%

如何在 Golang 中解析未知 MAP 结构 JSON

Josn

假定 API 返回以下 Json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"title": "格塔里",
"split": "-",
"files": {
"1": {
"list": [
"2767"
],
"url": [
"https://gtary.com/2020/05/09/2767.html"
]
},
"ahdiqgfveoqfk": {
"list": [
"喜羊羊",
"冰雪奇缘"
],
"url": [
"https://www.youtube.com/watch?v=LWwVKp-6qKs",
"https://www.netflix.com/sg-zh/title/70139073"
]
}
}
}

Golang

Struct

1
2
3
4
5
6
7
8
9
10
type FileList struct {
List []string `json:"list"`
URL []string `json:"url"`
}

type AllJSON struct {
Title string `json:"title"`
Split string `json:"split"`
Files map[string]FileList `json:"files"`
}

Resolve

1
2
3
4
5
6
7
8
9
10
11
var allJSON AllJSON
var fileList FileList
json.Unmarshal([]byte(jsonText), &allJSON)
for k, v := range allJSON.Files {
fileList = v
println(k)
for i := 0; i < len(fileList.List); i++ {
println(fileList[i].List)
println(fileList[i].URL)
}
}

总结

我太菜了,忘记了 for 可以遍历键值对,想了很多办法,饶了很多弯路,写一遍记录下来,避免再犯。