解组 datastore.ByteString 去

我正在尝试解组包含ByteString字段的数据存储实体 。


但是我遇到了解组错误,我想不出解组它的方法我应该创建自己的PropertyLoadSaver 吗?


json: cannot unmarshal string into Go value of type 




datastore.ByteString

package main


import (

    "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)

}


慕码人2483693
浏览 157回答 1
1回答

慕无忌1623718

你需要在这里使用一些中间类型。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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go