如何在Go语言中将一个结构体嵌套到另一个结构体中存储?

5

我有两个结构体(NewDailyPrediction),其中 DailyPrediction 结构体是 New 结构体的一个实体:

type New struct {
    Id string
    DailyPrediction
}

type DailyPrediction struct {
    Prediction string
}

我无法读取(或)写入数据存储中的新结构。如果有人能帮助我解决这个问题,那将非常有帮助。


数据存储?是指App Engine的数据存储吗?如果是的话,最好打上google-app-engine或gae-datastore的标签来帮助解答问题。 - Sonia
我删除了app-engine标签,因为这个问题似乎与app engine没有直接关系。也许我误读了问题? - matthias krull
3个回答

1

从您的问题中,我不清楚您正在使用Struct做什么以及它在哪方面失败了。但是,在您通过未给它名称将DailyPrediction结构嵌入新结构的同时,它仍然需要初始化。您可以在这里看到如何执行此操作的详细信息: http://golang.org/doc/effective_go.html#embedding

例如,为了初始化New结构,您可以使用以下代码:

    n := New{"foo", DailyPrediction{"bar"}}

那可能就是缺少的东西了吗?


非常感谢...我在发布问题时没有表述清楚。实际上,我正在创建这个结构以创建一个Json并将其保存在数据存储中。Json结构应该像这样{"Id":"20122403","Dailypred":{"Prediction":"ABCD"}}。读取Json时的问题是它会抛出一个错误-"SAVE datastore: unsupported struct field type: pcg_new.DailyPrediction"。请帮忙解决。 - Raj
我刚刚执行了以下操作:var jsonBlob = []byte({"Id": "meemaw", "Prediction": "Moonpie"}),并且成功地将其反序列化为我创建的结构体,其中DailyPrediction结构体包含字符串Prediction。这是你要找的吗? - Derek
没关系,我发现问题不是让json读取它,而是让appEngine存储它。听起来@alphazero的答案更相关,这是不被支持的。 - Derek

1

该应用程序不支持{{link1:Not supported}}。


它受应用引擎支持,也就是说你可以自己完成,库不会处理它。你需要实现接口并将事情变得平坦。 - Ali

0

仅供未来读者参考,更新此帖子...这些信息已经过时了...现在支持嵌套结构


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接