google-app-engine - 解码 datastore.ByteString go

标签 google-app-engine go google-cloud-datastore

您好,我正在尝试解码包含 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)
}

最佳答案

你需要在这里使用一些中间类型。 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

关于google-app-engine - 解码 datastore.ByteString go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106494/

相关文章:

java - GAE 如何从服务器动态提供 html 文件

iphone - 如何检测 iphone/ipod touch 是否正在访问我的 appengine 应用程序?

长度为 0 的 Golang 定时器

在 Go 中排序和比较数组

google-app-engine - 延迟测试清理的行为因我调用它的位置而异

python - 在 UploadHandler 中执行图像转换并将其保存到 Blobstore

java - 让 JDO 持久性管理器保持 Activity 状态而不是关闭它?

google-app-engine - 如何有效地使用GAE数据存储来进行iOS/Android回合制游戏

postgresql - 如何识别结果集中postgres的最后一行?

node.js - 错误消息: InvalidKey: A key should contain at least a kind