我正在尝试解组包含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
- 1 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消