我一直在使用 Go 的内置 HTTP 库解析我通过 HTTP GET 请求检索的 JSON 对象。我最初尝试在 Go 中使用默认的 JSON 库来做到这一点,但我遇到了困难(我仍然是 Go 的新手)。我最终求助于使用不同的库并且在那之后几乎没有问题,如下所示:
package main
import (
"github.com/antonholmquist/jason"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("http://tmi.twitch.tv/group/user/deernadia/chatters")
if nil != err {
panic(err)
}
defer resp.Body.Close()
body, err := jason.NewObjectFromReader(resp.Body)
chatters, err := body.GetObject("chatters")
if nil != err {
panic(err)
}
moderators, err := chatters.GetStringArray("moderators")
if nil != err {
panic(err)
}
for _, moderator := range moderators {
fmt.Println(moderator)
}
}
其中github.com/antonholmquist/jason对应于我使用的自定义 JSON 库。
此代码在 Linux shell 中运行时会产生类似于以下输出的内容(RESTful 服务大约每 30 秒更新一次,这意味着 JSON 对象中的值可能会更改):
antwan250
bbrock89
boxception22
cmnights
deernadia
fartfalcon
fijibot
foggythought
fulc_
h_ov
iceydefeat
kingbobtheking
lospollogne
nightbot
nosleeptv
octaviuskhan
pateyy
phosphyg
poisonyvie
shevek18
trox94
trox_bot
uggasmesh
urbanelf
walmartslayer
wift3
正如我之前所说,我正在使用托管在 Github 上的自定义库来完成我所需要的,但为了学习,我很好奇......我将如何使用 Go 的内置 JSON 库完成同样的事情?
明确地说,我想要做的是能够从 HTTP GET 请求返回的 JSON 对象中嵌入的每个 JSON 数组中获取用户。我还希望能够以相同的方式获取查看者、管理员、全局版主等的列表,但我认为如果我可以使用默认的 Go 库查看版主示例,然后为其他用户类型将是微不足道的。
先感谢您!
GCT1015
相关分类