本文整理汇总了Golang中google/golang.org/appengine/datastore.Property.Name方法的典型用法代码示例。如果您正苦于以下问题:Golang Property.Name方法的具体用法?Golang Property.Name怎么用?Golang Property.Name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类google/golang.org/appengine/datastore.Property
的用法示例。
在下文中一共展示了Property.Name方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: decodeProperty
func decodeProperty(c context.Context, k string, v interface{}, e *Entity) error {
var p datastore.Property
p.Name = k
var err error
switch v.(type) {
// Try to decode property object
case map[string]interface{}:
// Decode custom type
m := v.(map[string]interface{})
t, ok := m["type"]
if !ok {
t = "primitive"
}
if index, ok := m["indexed"]; ok {
if i, ok := index.(bool); ok {
p.NoIndex = !i
}
}
switch t {
case "key":
key, err := decodeKey(c, m["value"])
if err != nil {
return err
}
p.Value = key
case "blobkey":
v, ok := m["value"].(string)
if !ok {
return newDecodePropertyError(k, "blobkey", v)
}
p.Value = appengine.BlobKey(v)
case "blob":
v, ok := m["value"].(string)
if !ok {
return newDecodePropertyError(k, "date", v)
}
p.Value, err = base64.URLEncoding.DecodeString(v)
if err != nil {
return err
}
case "date":
v, ok := m["value"].(string)
if !ok {
return newDecodePropertyError(k, "date", v)
}
var dt time.Time
dt, err = time.Parse(DateTimeFormat, v)
if err != nil {
return newDecodePropertyError(k, "date", err)
}
p.Value = dt.UTC()
default:
if v, ok := m["value"]; ok {
err = decodeJSONPrimitiveValue(v, &p)
} else {
err = fmt.Errorf("aetools: complex property %s without 'value' attribute", k)
}
}
default:
err = decodeJSONPrimitiveValue(v, &p)
}
if err == nil {
e.Properties = append(e.Properties, p)
}
return err
}