gpt4 book ai didi

google-cloud-datastore - Go with GAE 将对象保存到数据存储区。取回时,该对象的成员为空

转载 作者:IT王子 更新时间:2023-10-29 01:53:25 25 4
gpt4 key购买 nike

我正在尝试使用 GAE 学习 Go。我创建了 2 个处理程序。一个用于将对象保存到数据存储区,另一个用于检索它并输出到屏幕。问题是当我从数据存储中检索 UserAccount 对象时,对象中的每个值都消失了。

如有任何帮助,我们将不胜感激。

输出:

账户数:2
val: core.UserAccount{idString:"", deviceId:""}
val: core.UserAccount{idString:"", deviceId:""}

type UserAccount struct {
idString string
deviceId string
}

func create_account(w http.ResponseWriter, r *http.Request) {

c := appengine.NewContext(r)

idstr := "ABCDEFGH"
devId := r.FormValue("deviceId")

newAccount := UserAccount{ idString: idstr, deviceId: devId,}

key := datastore.NewIncompleteKey(c, "UserAccount", nil)
_, err := datastore.Put(c, key, &newAccount)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

fmt.Fprintf(w, "val: %#v \n", newAccount)
}

func get_info(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)

q := datastore.NewQuery("UserAccount")
accounts := make([]UserAccount, 0, 10)
if _, err := q.GetAll(c, &accounts); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

fmt.Fprintf(w, "a/c count: %v \n", len(accounts))

for i := 0; i < len(accounts); i++ {
fmt.Fprintf(w, "val: %#v \n", accounts[i])
}
}

最佳答案

如果数据存储 API 使用反射(我认为它确实如此),它就无法访问未导出的结构字段,即不以大写字母开头的字段名称。

导出它们,它应该可以工作。

关于google-cloud-datastore - Go with GAE 将对象保存到数据存储区。取回时,该对象的成员为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16683495/

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