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

解组 datastore.ByteString 去

解组 datastore.ByteString 去

Go
慕码人2483693 2021-10-04 16:32:37
我正在尝试解组包含ByteString字段的数据存储实体 。但是我遇到了解组错误,我想不出解组它的方法我应该创建自己的PropertyLoadSaver 吗?json: cannot unmarshal string into Go value of type datastore.ByteStringpackage mainimport (    "encoding/json"    "fmt"    "google.golang.org/appengine/datastore")type User struct {    SubscriptionToken datastore.ByteString}func main() {    u := new(User)    str := "{\"SubscriptionToken\":\"YWR66969hjgkgkgo\"}"    err := json.Unmarshal([]byte(str), &u)    if err != nil {        fmt.Println(err)    }    fmt.Println(u)}
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

你需要在这里使用一些中间类型。json 只是一个字符串,如果ByteString不进行一些自定义的解组实现,则无法直接将其解组为。就我个人而言,我只会使用类似的东西;


type jsonUser struct {

    SubscriptionToken string

}


type User struct {

    SubscriptionToken datastore.ByteString

}

然后提供转换方法;


func NewUser(u jsonUser) *User {

     return &User{SubscriptionToken: StringToByteString(u.SubscriptionToken)}

}

因此,解组到jsonUser类型然后将其转换为User


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

添加回答

举报

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