为了账号安全,请及时绑定邮箱和手机立即绑定

Id 为使用 Go 的 Rest API 返回 0

Id 为使用 Go 的 Rest API 返回 0

Go
紫衣仙女 2021-10-18 15:07:52
我一直在尝试使用 Go 构建一些简单的后端 REST API,使用 Google App Engine 及其数据存储和前端的 AngularJS。除了编辑之外,我能够让一切正常工作。而且我不确定为什么 JSON 没有正确解组。结构:type Article struct {    Key    int64    `json:"Key" datastore:"-"`    Title  string    Text   string   `datastore:",noindex"`    Author string    Tags   string    Posted time.Time}加载文章时,我使用数据存储中的 id 值填充 Key 属性。示例:5593215650496512我将该字段保留在表单上的隐藏输入中,并通过 HTTP Post 将表单内容作为 JSON 提交到 Go 后端。在提交之前,我可以看到 Key 拥有正确的值。这是表格:                <form name="articleForm" ng-submit="saveArticle(article)">                    <fieldset>                        <input type="hidden" name="key" ng-value="article.Key" />                        <div class="form-group">                            <input class="form-control" ng-model="article.Title" placeholder="Title" name="title" type="text" required autofocus />                            <div class="alert alert-danger" ng-show="articleForm.Title.$invalid && articleForm.Title.$dirty">                                <ul>                                    <li ng-show="articleForm.title.$error.required">this field is required</li>                                </ul>                            </div>                        </div>
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

当您解组到您的文章时,您忽略了错误。您应该看到json: cannot unmarshal string into Go value of type int64,因为Key正文中的值被格式化为字符串。


如果这是您所期望的,那么您可以通过将string选项添加到标签来告诉 json 包使用它:


type Article struct {

    Key    int64    `json:"Key,string" datastore:"-"`

    Title  string

    Text   string   `datastore:",noindex"`

    Author string

    Tags   string

    Posted time.Time

}


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信