• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang structs.Map函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/fatih/structs.Map函数的典型用法代码示例。如果您正苦于以下问题:Golang Map函数的具体用法?Golang Map怎么用?Golang Map使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Map函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: SaveProxy

func (ps *ProxyStorage) SaveProxy(toSave *Proxy, update bool) (int, error) {
	logger.Tracef("Saving proxy to storage: %s", toSave)

	var query interface{}

	queryString := fmt.Sprintf(`[{"eq" : "%s", "in" : ["Ip"] },{"eq" : "%n", "in" : ["Port"] }]`, toSave.Ip, toSave.Port)
	json.Unmarshal([]byte(queryString), &query)

	queryResult := make(map[int]struct{}) // query result (document IDs) goes into map keys

	if err := db.EvalQuery(query, ps.proxyCol, &queryResult); err != nil {
		panic(err)
	}

	if len(queryResult) > 0 {
		logger.Tracef("Exists in database: %s", toSave)
		if update {
			logger.Tracef("Updating %s", toSave)
			for k, _ := range queryResult {
				//expecting single key
				return k, ps.proxyCol.Update(k, structs.Map(toSave))
			}
		}
	}
	return ps.proxyCol.Insert(structs.Map(toSave))
}
开发者ID:pomkine,项目名称:weasel,代码行数:26,代码来源:db.go


示例2: CreateToken

func (m *Mongore) CreateToken(token account.Token) error {
	key := fmt.Sprintf("%s: %s", token.Type, token.User.Email)
	db.Cache.Set(key, nil, time.Duration(token.Expires)*time.Minute)
	db.AddHCache(key, token.Expires, structs.Map(token))

	db.Cache.Set(token.AccessToken, nil, time.Duration(token.Expires))
	db.AddHCache(token.AccessToken, token.Expires, structs.Map(token.User))
	return nil
}
开发者ID:sinzone,项目名称:apihub,代码行数:9,代码来源:mongore.go


示例3: securityGroupRuleSingle

func securityGroupRuleSingle(rule *osSecurityGroupRules.SecGroupRule) map[string]interface{} {
	m := structs.Map(rule)

	m["SecurityGroupID"] = m["SecGroupID"]

	return m
}
开发者ID:flazz,项目名称:rack,代码行数:7,代码来源:common.go


示例4: pluckElement

// Function pluckElement is used to retrieve an array of just one field(destKeyName) present in original structure(plant).
// Input : 'plant' is the source from which an element needs to be plucked. An array of structure is expected.
//         'destKeyName' is the output element key name. This should not be an array as this will be used just to
//              form the output structure.
// Output : []interface{} - An array is returned. Type assertion can be used to derive an array of required type.
// See example for more details.
func pluckElement(plant interface{}, destKeyName string) ([]interface{}, error) {

	flag := 0
	// Read the value from interface{}
	srcExtract := reflect.ValueOf(plant)

	// The result map[string]interface{} to be returned
	var elementExtract []interface{}

	// Retrieve the source elements one by one and copy to dest
	for i := 0; i < srcExtract.Len(); i++ {
		indexVal := srcExtract.Index(i).Interface()
		indexValMap := structs.Map(indexVal)
		if value, present := indexValMap[destKeyName]; present {
			elementExtract = append(elementExtract, value)
			flag = 1
		}
	}

	// This is to make sure that at least one value got extracted from plant to branch
	if flag == 0 {
		err := errors.New("Source Destination Type Mismatch")
		return nil, err
	}
	return elementExtract, nil
}
开发者ID:systemgenes,项目名称:go-pluck,代码行数:32,代码来源:pluck.go


示例5: getUsers

func getUsers(user string, properties []string) {
	api := setupAPI()

	// Get the user from the Graph.
	result, err := api.GetUser(user, properties)
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error: %v", err)
		return
	}

	// Convert the object to a map.
	m := structs.Map(result)

	// Get longest property name and sort all property names
	// alphabetically.
	var props []string
	longest := 0
	for k, _ := range m {
		props = append(props, k)
		if len(k) > longest {
			longest = len(k)
		}
	}
	sort.Strings(props)

	// Write out the properties.
	format := fmt.Sprintf("%%-%ds: %%v\n", longest)
	for _, prop := range props {
		fmt.Printf(format, prop, getValueAsString(m, prop))
	}
}
开发者ID:Crosse,项目名称:msgraph,代码行数:31,代码来源:userGet.go


示例6: main

func main() {
	templateHtml, err := mustache.ParseFile("./report.html")
	if err != nil {
		log.Fatal("Parse Html failed, ", err)
	}

	var tmpfile = tmpDir + "test_report.html"
	tmpHtmlFile, err := os.Create(tmpfile)
	if err != nil {
		log.Fatal("Create tmp file failed, ", err)
	}
	var data Data
	data.Name = "!!! XXXX !!!!"
	mapping := structs.Map(data)
	var str = templateHtml.Render(mapping)
	filelength, err := tmpHtmlFile.WriteString(str)
	fmt.Printf("wrote %d bytes\n", filelength)
	tmpHtmlFile.Sync()
	cmd := "wkhtmltopdf"
	args := []string{"--print-media-type", "--page-size", "A4", "-T", "0mm", "-B", "0mm", "-L", "0mm", "-R", "0mm", "--dpi", "600", "test_report.html", "test_report.pdf"}
	if err := exec.Command(cmd, args...).Run(); err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	fmt.Println("Successfully Generates the report of PDF format")

}
开发者ID:lin11230,项目名称:testTemplate,代码行数:28,代码来源:testTemplate.go


示例7: handle

//handle takes a job and appropriate sends it to a function that will run it
func (qs *QueueService) handle(job *QueueJob) {
	switch job.Job {
	case "updateDatasetFile":
		udfjd := UpdateDatasetFileJobData{}
		jobJson, err := json.Marshal(job.Data)
		if err != nil {
			log.Fatal("Error creating JSON: ", err)
		}

		err = json.Unmarshal(jobJson, &udfjd)
		if err != nil {
			log.Fatal("Error parsing JSON: ", err)
		}
		/*
			pds := NewPredictDatasetService(database.GetDatabase())
			pds.UpdateFile(udfjd)
		*/
		fs := files.NewFileService(database.GetDatabase())
		newTrans, err := fs.UpdateFile(udfjd.Extra.Subdom, udfjd.FileGUID, udfjd.TemplateGUID)
		//Alert luminous that its Done
		queue := NewQueueService("luminous")
		jobData := structs.Map(udfjd)
		jobData["NewTrans"] = newTrans
		qj := &QueueJob{
			Job:  `Spark451\Luminous\v2\Predict\Classes\[email protected]`,
			Data: jobData,
		}
		queue.Push(qj)
	}
}
开发者ID:tpham451,项目名称:gopredict,代码行数:31,代码来源:queueService.go


示例8: Write

// Write populates a buffer using a template with NGINX configuration
// and the servers and upstreams created by Ingress rules
func (t *Template) Write(cfg config.Configuration, ingressCfg ingress.Configuration) ([]byte, error) {
	conf := make(map[string]interface{})
	conf["backlogSize"] = sysctlSomaxconn()
	conf["upstreams"] = ingressCfg.Upstreams
	conf["servers"] = ingressCfg.Servers
	conf["tcpUpstreams"] = ingressCfg.TCPUpstreams
	conf["udpUpstreams"] = ingressCfg.UDPUpstreams
	conf["defResolver"] = cfg.Resolver
	conf["sslDHParam"] = cfg.SSLDHParam
	conf["customErrors"] = len(cfg.CustomHTTPErrors) > 0
	conf["cfg"] = fixKeyNames(structs.Map(cfg))

	if glog.V(3) {
		b, err := json.Marshal(conf)
		if err != nil {
			glog.Errorf("unexpected error: %v", err)
		}
		glog.Infof("NGINX configuration: %v", string(b))
	}

	buffer := new(bytes.Buffer)
	err := t.tmpl.Execute(buffer, conf)
	if err != nil {
		glog.V(3).Infof("%v", string(buffer.Bytes()))
	}

	return buffer.Bytes(), err
}
开发者ID:danielibrahim,项目名称:contrib,代码行数:30,代码来源:template.go


示例9: prepContext

func (p *LuaPlugin) prepContext(L *lua.State, req *http.Request, ctx *apiplexy.APIContext) {
	var clientIP string
	if req.Header.Get("X-Forwarded-For") != "" {
		clientIP = req.Header.Get("X-Forwarded-For")
	} else {
		clientIP, _, _ = net.SplitHostPort(req.RemoteAddr)
	}

	headers := make(map[string]interface{}, len(req.Header))
	for k, vs := range req.Header {
		headers[k] = strings.Join(vs, " ")
	}

	request := map[string]interface{}{
		"path":     req.URL.Path,
		"method":   req.Method,
		"ip":       clientIP,
		"referrer": req.Referer(),
		"browser":  req.UserAgent(),
		"headers":  headers,
	}
	pushMap(L, request, false)
	L.SetGlobal("request")

	pushMap(L, structs.Map(ctx), true)
	L.SetGlobal("context")
}
开发者ID:12foo,项目名称:apiplexy,代码行数:27,代码来源:lua.go


示例10: LoginUser

// These are the endpoints required to do a login and verifying that tokens are
// alive
func LoginUser(c *gin.Context) {
	var user User
	var loginer login.Loginer
	var tokenStr string

	var token Token
	var tokener tokens.Tokener

	c.BindJSON(&user)

	loginer = user
	tokener = token

	SignatureStr, email := loginer.Login(user.Username, user.Password)
	tokenStr, err := tokener.GenerateToken(SignatureStr)

	if err != nil {
		c.JSON(404, gin.H{"error generating token": err})
	} else {
		data := structs.Map(user)
		err = boltdb.UpdateBucket(db, tokenStr, data)
		if err != nil {
			c.JSON(404, gin.H{"error updating bucket": err})
		} else {
			c.JSON(201, gin.H{"token": tokenStr, "email": email})
		}
	}
}
开发者ID:gophergala2016,项目名称:golin,代码行数:30,代码来源:main.go


示例11: AndStoreMany

func (m *StoreModifier) AndStoreMany(objs []interface{}) *StoreModifier {
	m.Request.Controls.Multiplicity = "multiple"

	s := reflect.ValueOf(objs)
	var interfaceList []map[string]interface{}
	interfaceList = make([]map[string]interface{}, s.Len())

	for i := 0; i < s.Len(); i++ {
		//newMap := structs.Map(s.Index(i).Interface())
		obj := s.Index(i).Interface()
		v := reflect.ValueOf(obj)
		k := v.Kind()
		fmt.Println("KIND : ", k)
		var newMap map[string]interface{}

		if k != reflect.Map {
			newMap = structs.Map(obj)
		} else {
			newMap = obj.(map[string]interface{})
		}

		interfaceList[i] = newMap
	}

	//for index, element := range objs {
	//	interfaceList[index] = structs.Map(element)
	//}

	m.Request.Body.Objects = interfaceList
	return m
}
开发者ID:sajeetharan,项目名称:v6engine,代码行数:31,代码来源:StoreModifier.go


示例12: writeCfg

func (ngx *Manager) writeCfg(cfg nginxConfiguration, ingressCfg IngressConfig) (bool, error) {
	conf := make(map[string]interface{})
	conf["upstreams"] = ingressCfg.Upstreams
	conf["servers"] = ingressCfg.Servers
	conf["tcpUpstreams"] = ingressCfg.TCPUpstreams
	conf["udpUpstreams"] = ingressCfg.UDPUpstreams
	conf["defResolver"] = ngx.defResolver
	conf["sslDHParam"] = ngx.sslDHParam
	conf["cfg"] = fixKeyNames(structs.Map(cfg))

	buffer := new(bytes.Buffer)
	err := ngx.template.Execute(buffer, conf)
	if err != nil {
		glog.Infof("NGINX error: %v", err)
		return false, err
	}

	if glog.V(3) {
		b, err := json.Marshal(conf)
		if err != nil {
			fmt.Println("error:", err)
		}
		glog.Infof("NGINX configuration: %v", string(b))
	}

	changed, err := ngx.needsReload(buffer)
	if err != nil {
		return false, err
	}

	return changed, nil
}
开发者ID:timstclair,项目名称:kube-contrib,代码行数:32,代码来源:template.go


示例13: AutoPathExt

// AutoPath returns a path based on the task name and parameters.
func AutoPathExt(outp Outputter, ext string) string {
	directory := strings.Replace(fmt.Sprintf("%T", outp), ".", "/", -1)
	m := structs.Map(outp)

	var keys []string
	for k := range m {
		keys = append(keys, k)
	}
	sort.Strings(keys)

	var parts []string
	for _, k := range keys {
		parts = append(parts, k)
		value := m[k]
		switch v := value.(type) {
		case string:
			parts = append(parts, v)
		case fmt.Stringer:
			parts = append(parts, v.String())
		default:
			parts = append(parts, fmt.Sprintf("%v", m[k]))
		}
	}
	fn := strings.Join(parts, "-")
	if len(fn) == 0 {
		fn = "output"
	}
	filename := fn + "." + ext
	return path.Join(directory, filename)
}
开发者ID:miku,项目名称:dagger,代码行数:31,代码来源:task.go


示例14: GetStats

func (app *Application) GetStats() map[string]interface{} {
	statsInterface := app.Storage.Get("stats")
	if statsInterface == nil {
		return nil
	}

	stats := statsInterface.(*models.Stats)
	payload := structs.Map(stats)

	// Fetch the other stats data from file.
	statsFromFileInterface := app.Storage.Get("statsFromFile")

	if statsFromFileInterface != nil {
		statsFromFile := statsFromFileInterface.(map[string]interface{})

		for key, value := range statsFromFile {
			trimmedKey := strings.Replace(key, "libmcrouter.mcrouter.5000.", "", -1)
			payload[trimmedKey] = value
		}
	}

	hostname, err := os.Hostname()
	if err == nil {
		payload["hostname"] = hostname
	}

	return payload
}
开发者ID:didip,项目名称:mcrouter-hub,代码行数:28,代码来源:application.go


示例15: FindObjComments

// FindObjComments 获得某个对象的所有评论
// owner: 被评论对象属主
// TODO:分页暂不做
func (self CommentLogic) FindObjComments(ctx context.Context, objid, objtype int, owner, lastCommentUid int /*, page, pageNum int*/) (comments []map[string]interface{}, ownerUser, lastReplyUser *model.User) {
	objLog := GetLogger(ctx)

	commentList := make([]*model.Comment, 0)
	err := MasterDB.Where("objid=? AND objtype=?", objid, objtype).Find(&commentList)
	if err != nil {
		objLog.Errorln("CommentLogic FindObjComments Error:", err)
		return
	}

	uids := slices.StructsIntSlice(commentList, "Uid")

	// 避免某些情况下最后回复人没在回复列表中
	uids = append(uids, owner, lastCommentUid)

	// 获得用户信息
	userMap := DefaultUser.FindUserInfos(ctx, uids)
	ownerUser = userMap[owner]
	if lastCommentUid != 0 {
		lastReplyUser = userMap[lastCommentUid]
	}
	comments = make([]map[string]interface{}, 0, len(commentList))
	for _, comment := range commentList {
		tmpMap := structs.Map(comment)
		tmpMap["content"] = template.HTML(self.decodeCmtContent(ctx, comment))
		tmpMap["user"] = userMap[comment.Uid]
		comments = append(comments, tmpMap)
	}
	return
}
开发者ID:studygolang,项目名称:studygolang,代码行数:33,代码来源:comment.go


示例16: writeCfg

func (ngx *Manager) writeCfg(cfg config.Configuration, ingressCfg IngressConfig) (bool, error) {
	conf := make(map[string]interface{})
	conf["backlogSize"] = sysctlSomaxconn()
	conf["upstreams"] = ingressCfg.Upstreams
	conf["servers"] = ingressCfg.Servers
	conf["tcpUpstreams"] = ingressCfg.TCPUpstreams
	conf["udpUpstreams"] = ingressCfg.UDPUpstreams
	conf["defResolver"] = ngx.defResolver
	conf["sslDHParam"] = ngx.sslDHParam
	conf["customErrors"] = len(cfg.CustomHTTPErrors) > 0
	conf["cfg"] = fixKeyNames(structs.Map(cfg))

	if glog.V(3) {
		b, err := json.Marshal(conf)
		if err != nil {
			glog.Errorf("unexpected error:", err)
		}
		glog.Infof("NGINX configuration: %v", string(b))
	}

	buffer := new(bytes.Buffer)
	err := ngx.template.Execute(buffer, conf)
	if err != nil {
		glog.V(3).Infof("%v", string(buffer.Bytes()))
		return false, err
	}

	changed, err := ngx.needsReload(buffer)
	if err != nil {
		return false, err
	}

	return changed, nil
}
开发者ID:upmc-enterprises,项目名称:contrib,代码行数:34,代码来源:template.go


示例17: Map

func (c *Config) Map() map[string]interface{} {
	if c.AwsAccessKey != "" {
		s3util.DefaultConfig.AccessKey = c.AwsAccessKey
		s3util.DefaultConfig.SecretKey = c.AwsSecretKey
	}
	return structs.Map(c)
}
开发者ID:marsmensch,项目名称:blobstash,代码行数:7,代码来源:s3.go


示例18: get_source_by_id

func get_source_by_id(res rest.ResponseWriter, conn redis.Conn, contentType string, doc_id string) (map[string]interface{}, bool) {
	hash_key := "index:" + contentType + ":source:" + doc_id
	hash_value := Source{"", "", "", 0}

	exists, err := redis.Bool(conn.Do("EXISTS", hash_key))
	if err != nil {
		rest.Error(res, "Unexpected error. "+err.Error(), 400)
		return nil, true
	}
	if exists == false {
		return nil, false
	}

	// get the document indexed
	values, err := conn.Do("HGETALL", hash_key)
	if err == nil {
		err = redis.ScanStruct(values.([]interface{}), &hash_value)
	}
	if err != nil {
		rest.Error(res, "Unexpected error. "+err.Error(), 400)
		return nil, true
	}

	source := structs.Map(hash_value)

	source["Id"] = doc_id
	source["Payload"] = StringToJson(source["Payload"].(string))

	return source, false
}
开发者ID:PipeGrep,项目名称:autocomplete-redis-golang-api,代码行数:30,代码来源:get_object.go


示例19: getPost

func (parser *Parser) getPost(file *get3w.File) *get3w.Post {
	post := &get3w.Post{}

	front, content := parser.read(post, file.Path)

	ext := getExt(file.Path)
	post.Content = getStringByExt(ext, content)
	post.ID = removeExt(file.Name)
	post.Path = file.Path
	if post.Title == "" {
		post.Title = post.ID
	}
	post.URL = "/posts/" + post.ID + ".html"

	vars := make(map[string]interface{})
	if len(front) > 0 {
		yaml.Unmarshal(front, vars)
	}
	post.AllParameters = structs.Map(post)
	for key, val := range vars {
		if _, ok := post.AllParameters[key]; !ok {
			post.AllParameters[key] = val
		}
	}

	return post
}
开发者ID:get3w,项目名称:get3w,代码行数:27,代码来源:posts.go


示例20: call

func (s *service) call(server *Server, sending *sync.Mutex, mtype *methodType, req *Request, argv, replyv []reflect.Value, codec ServerCodec) {
	mtype.Lock()
	mtype.numCalls++
	mtype.Unlock()
	function := mtype.method.Func

	// Invoke the method, providing a new value for the reply.
	args := make([]reflect.Value, 0)
	args = append(args, s.rcvr)
	args = append(args, argv...)
	returnValues := function.Call(args)

	// look if their an error in the return types and return it if its not nil
	var isStruct bool
	var retStructIdx int
	for i, retVal := range returnValues {
		if e, ok := retVal.Interface().(error); ok {
			server.sendResponse(sending, req, nil, codec, e.Error())
			return
		}
		if retVal.Kind() == reflect.Struct {
			isStruct = true
			retStructIdx = i
		}
	}

	var res interface{}
	if isStruct {
		res = structs.Map(returnValues[retStructIdx].Interface())
	} else {
		res = returnValues[0].Interface()
	}

	server.sendResponse(sending, req, res, codec, "")
}
开发者ID:bas-vk,项目名称:rpcpoc,代码行数:35,代码来源:server.go



注:本文中的github.com/fatih/structs.Map函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang structs.Name函数代码示例发布时间:2022-05-23
下一篇:
Golang structs.Fields函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap