2 回答
TA贡献1853条经验 获得超9个赞
Json 数组应该解组为 Go 切片或数组。看起来您正试图将里面的数组解组values为struct
"values": [[1,"alice","127.0.0.1"], [1,"bob","127.0.0.1"]]
上面的数组数组应该解组为 Go 切片。
尝试,
type queryResults struct {
Results []struct {
Columns []string `json:"columns"`
Types []string `json:"types"`
Values [][]interface{} `json:"values"`
Time float64 `json:"time"`
} `json:"results"`
}
在围棋游乐场
并且不要忽略错误。如果你尝试过,
err := json.Unmarshal([]byte(jsonString), &resultjson)
if(err != nil){
fmt.Println(err)
}
你可能已经看到了错误。
TA贡献1780条经验 获得超5个赞
问题是您的结构定义期望“值”包含一个对象数组,但您的实际 json 包含一个数组数组。如果您检查 json.Unmarshal() 的结果,您会看到它报告了一个关于此的错误。试试golang 游乐场
error json: cannot unmarshal array into Go value of type struct { Room_id int; Player_name string; Player_ip string }
据我所知,您无法将其直接映射到结构中,您需要将其读入数组,然后将其处理为最终类型。下面是一个成功解析json的例子【解析后的转换留给读者练习】
{Results:[{Columns:[room_id player_name player_ip]
Types:[integer text text]
Values:[[1 alice 127.0.0.1] [1 bob 127.0.0.1]]
Time:0.00018839100000000002}]}
- 2 回答
- 0 关注
- 125 浏览
添加回答
举报