gpt4 book ai didi

go - 如何在 GO 的 json.RawMessage 中检查 KEY 是否存在?

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

我有一个:

type User struct {
UID int `json:"id"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Sex int `json:"sex"`
Nickname string `json:"nickname"`
ScreenName string `json:"screen_name"`
BDate string `json:"bdate"`

}

代码:

var userList []*User
json.Unmarshal(resp.Response, &userList)

服务器响应可能是:

[{"id":1,"first_name":"name","last_name":"last","sex":2,"nickname":"","screen_name":"screen","bdate":"1.1.1"}]

[{"id":1,"first_name":"name","sex":2,"nickname":"","screen_name":"screen"}]

我在调用不存在的 KEY 错误运行时时遇到的问题“userList[0].LastName”:

error: index out of range

在第一种情况下,服务器返回:

"last_name":"last" and "bdate":"1.1.1"

在第二个没有

当没有用户时,服务器返回。

[{"error_code": 0, "error_msg": "Invalid user id"}]

回答:

    if len(userList) > 0 {
c.String(http.StatusOK, "People name: %s", userList[0].FirstName)
} else {
c.String(http.StatusOK, "No People: %s", login)
}

感谢大师

最佳答案

error: index out of range 意味着 userList 没有索引 [0] 的值,而不是空的 LastName

在您的示例中,一切正常:https://play.golang.org/p/WHIqgB52w_I

您确定服务器返回有效字符串并且该字符串存在于resp.Response 中吗?

尝试打印 resp.Response 并在其他地方查找错误

关于go - 如何在 GO 的 json.RawMessage 中检查 KEY 是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55707507/

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