草庐IT

go-simplejson

全部标签

go - 使用 Golang 解决没有泛型的类型断言?

我正在使用gorm,它允许多种数据类型,例如int、uint、int8、uint8....然后我在模板中有一个这样的插件:f["UNIX2STR"]=func(tinterface{},fstring)string{switcht.(type){caseint:returntime.Unix(int64(t.(int)),0).Format(f)caseuint:returntime.Unix(int64(t.(uint)),0).Format(f)caseuint8:returntime.Unix(int64(t.(uint8)),0).Format(f)case*int:retur

json - 解码数组时无法将数组解码为 Go 结构

我正在尝试将JSON字符串正确解码为一个对象。我定义了以下结构:typeAjaxModelsListstruct{Idfloat64`json:"Id"`Namestring`json:"Name"`CarIdfloat64`json:"CarId"`EngNamestring`json:"EngName"`}typeAjaxModelsDatastruct{ModelList[]AjaxModelsList`json:"ModelList"`}typeAjaxModelsstruct{Statusbool`json:"status"`Datamap[string]AjaxModels

go - 我的静态文件没有正确呈现

在我的html页面中,我引用了如下静态Assets:和这些文件存储在:/assets/js/bundle.js/assets/css/style.css目前我的路线是这样的:app.PathPrefix("/static/").Handler(http.StripPrefix("/static/",http.FileServer(http.Dir("/assets"))))目前它不工作,当我查看chrome控制台时返回404未找到错误。我在这里做错了什么? 最佳答案 问题在于您在这一行调用http.Dir("/assets"):ap

go - 在 Golang 中传递 interface{} 或 []interface{}

对于这个片段,为什么它允许interface{}传递给函数而不是[]interface。有什么区别?我知道错误的意思(已将其注释到函数中),但我不确定错误的含义。https://play.golang.org/p/689R_5dswFXpackagemaintypesmsSendRequeststruct{Recipientsstring`json:"recipients"`}//funcaction(passinterface{}){////works//}funcaction(pass[]interface{}){//cannotusedata(type*smsSendReques

api - Go 不会立即响应 GET 请求,它会在 ticker 完成后响应

我是Go编程的新手,我尝试为多人游戏构建API。如果我对http://localhost:8080/create_game/gameName发出GET请求.自动收报机完成后服务器对请求的响应。我需要立即从服务器获得响应,但是当自动收报机结束并且游戏超时并被删除时我得到了它。这是我的代码:varclients=make(map[*websocket.Conn]bool)varbroadcast=make(chanGame)//GAME_TIMEOUTinsecondsconstGAME_TIMEOUT=20//IDgeneratingvargenID=0vargames=[]Game{}

go - 为什么解码此 API 响应会返回意外的 EOF?

问题我正在使用ProtocolBuffer和gRPC在Go中创建一个微服务。它与第三方API(Snooth)交互,我正在尝试使用proto包将JSON响应解码为我创建的protobuf结构。解码返回一个意外的EOF错误。我尝试过的使用json.newDecoder而不是json.unmarshaljsonpb.Unmarshal而不是proto.Unmarshal(返回StructValue中键的错误值错误)使用io.LimitReader限制响应读取我还读过一些关于在原型(prototype)类型前加上尺寸标签之类的东西?但我不确定那是什么或者它是否相关。这是Github上的repo

go - 解码 yaml 不正确?

我正在使用yaml解码yaml文件。然而,结果并不如预期。EncryptKey未提取。这是我的测试代码:packagemainimport("fmt""log""gopkg.in/yaml.v2")vardata=`port:8080encryptKey:"jfgjfgkfgd"`typeConfigstruct{Portint`json:"port"`EncryptKeystring`json:"encryptKey"`}funcmain(){t:=Config{}err:=yaml.Unmarshal([]byte(data),&t)iferr!=nil{log.Fatalf("e

go - 为 Go 库使用提供的 CLI

我想提取使用“siva”文件格式压缩的文件。他们的库是用Go编写的,可以使用goget-ugopkg.in/src-d/go-siva.v1/...显然,他们还提供了一个命令行界面。给定一些使用goget获取的Go包,如何使用CLI?我在这里缺少什么?这是Github存储库:https://github.com/src-d/go-siva#cli.谢谢! 最佳答案 我想通了。对于任意的Go源代码,只需在目录中执行gobuild即可。对于这种情况,有一个名为cmd的子目录,在运行gobuild之后,可以得到一个siva可执行文件。

go - 为什么使用自定义 log.Logger 记录到文件会失败?

我无法让我的程序从main()之外的函数写入日志文件我确实看到了https://stackoverflow.com/a/19966217/4374801这很相似,但没有解决我的确切问题。以下是我正在做的事情的重要部分:var(Info*log.LoggerError*log.Logger)funcinit(){//setuplogfilefileHandle,err:=os.OpenFile("/var/log/checkcert",os.O_WRONLY|os.O_CREATE|os.O_APPEND,0644)iferr!=nil{log.Fatal(err)}//defertoc

go - 您可以通过 json 键字段动态迭代 Go 中的结构字段吗?

typeParamsstruct{MyNumstring`json:"req_num"`}所以我需要将MyNum的值分配给另一个变量,给定一个“req_num”字符串键,用于我在beego框架。这在Go中是否可行?如果可行,如何实现?我查看了反射库,找不到方法。这是我正在尝试做的一个例子。params是一个Params类型的变量,MyNum的值初始化为“123”让我们说。f目前没有得到“123”。当我将其记录到控制台时,它显示""。b:="req_num"r:=reflect.ValueOf(params)f:=reflect.Indirect(r).FieldByName(b)编辑: