gpt4 book ai didi

Golang 中的 Json 解码/解码

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:11 26 4
gpt4 key购买 nike

我有以下 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}]}

其中值可以包含任意数量的元素 []。当我尝试将 json 解码为结构时,“值”标记未正确解析

结构:

type queryResults struct {
Results []struct {
Columns []string `json:"columns"`
Types []string `json:"types"`
Values []struct {
Room_id int
Player_name string
Player_ip string
} `json:"values"`
Time float64 `json:"time"`
} `json:"results"`
}

代码:

//jsonString is the string input to Unmarshal
resultjson := queryResults{}
json.Unmarshal([]byte(jsonString), &resultjson)
fmt.Printf("%+v",resultjson)

当前输出:

{Results:
[{Columns:[room_id player_name player_ip]
Types:[integer text text]
Values:[{room_id:0 player_name: player_ip:}
{room_id:0 player_name: player_ip:}]
Time:0.00018839100000000002}]}

预期输出:

{Results:
[{Columns:[room_id player_name player_ip]
Types:[integer text text]
Values:[{room_id:1 player_name:alice player_ip:127.0.0.1}
{room_id:1 player_name:bob player_ip:127.0.0.1}]
Time:0.00018839100000000002}]}

最佳答案

Json 数组应该解码为 Go slice 或数组。看起来您正在尝试将 values 中的数组解码为 struct

“值”:[[1,"alice","127.0.0.1"], [1,"bob","127.0.0.1"]]

上面的数组数组应该被解码成 Go slice 的 slice 。

尝试,

type queryResults struct {
Results []struct {
Columns []string `json:"columns"`
Types []string `json:"types"`
Values [][]interface{} `json:"values"`
Time float64 `json:"time"`
} `json:"results"`
}

Go Playground

并且不要忽略错误。如果你尝试过,

err := json.Unmarshal([]byte(jsonString), &resultjson)
if(err != nil){
fmt.Println(err)
}

您可能已经看到了错误。

关于Golang 中的 Json 解码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com