草庐IT

go-simplejson

全部标签

json - Go:过滤 JSON 响应

我正在尝试返回一个json响应,如果id大于5,该响应仅通过采用结构值进行过滤。可在此处找到示例基本代码:http://play.golang.org/p/4ORba3y7F7如何过滤json结果? 最佳答案 不确定JSON是从哪里来的。我猜这就是您想要的:http://play.golang.org/p/sEkfcEN2DJpackagemainimport"fmt"typePingstruct{Content[]aContent}typeaContentstruct{TypestringIdintCreated_atint64}

go - 以编程方式为 os.Process 编写标准输入

更新:要以编程方式“驱动”bash,您需要一个伪终端(PTY)。这就是我要找的:https://github.com/kr/ptypackagemainimport("github.com/kr/pty""io""os""os/exec")funcmain(){c:=exec.Command("grep","--color=auto","bar")f,err:=pty.Start(c)iferr!=nil{panic(err)}gofunc(){f.Write([]byte("foo\n"))f.Write([]byte("bar\n"))f.Write([]byte("baz\n")

Go:使用 TCP 连接写入 header

我从这里用以下代码结构实现了一个TCP服务器:http://golang.org/pkg/net/#example_Listener我正在尝试从浏览器pingTCP服务器。TCP服务器能够写入我的浏览器。但是,它无法写入客户端header,因为它未使用HTTP协议(protocol)。如何保持TCP协议(protocol)和连接,但仍然能够写入浏览器的header? 最佳答案 HowdoIkeeptheTCPprotocolandconnectionsbutstillbeabletowritetothebrowser'sheader

go - 使用带有匿名函数的标签

在sourcecode中的Pool结构中有一个新函数sync包的定义如下typePoolstruct{localunsafe.Pointer//localfixed-sizeper-Ppool,actualtypeis[P]poolLocallocalSizeuintptr//sizeofthelocalarray//Newoptionallyspecifiesafunctiontogenerate//avaluewhenGetwouldotherwisereturnnil.//ItmaynotbechangedconcurrentlywithcallstoGet.Newfunc()i

go - 为什么我的 UDP 拨号器没有监听?

我有两个程序,一个监听器和一个拨号器。我想要同一端口上的双向UDP通信。我的监听器按预期读取从拨号器发送的数据报,然后发回它自己的5个数据报。唯一的问题是,我的拨号器没有读取它。我尝试使用net.DialUDP,但是当我使用它时,从拨号器发送了0个数据报。listener-效果很好funcmain(){addr:=net.UDPAddr{Port:7000,IP:net.ParseIP("127.0.0.1"),}conn,err:=net.ListenUDP("udp",&addr)deferconn.Close()iferr!=nil{panic(err)}i:=0b:=make(

go - 多个 goroutine 中的命名空间 uuid

我想用go语言为高度可扩展的应用程序创建一个“无冲突”的唯一ID。维基百科推荐UUID的命名空间变体(我只能假设指的是版本3或5)Wikipedia具体说明:Whereuniqueidentifiersarerequiredfordistributedapplications,sothatUUIDsdonotclashevenwhendatafrommanydevicesismerged,therandomnessoftheseedsandgeneratorsusedoneverydevicemustbereliableforthelifeoftheapplication.Wheret

go - 单值上下文中的多值 url.Parse() (net/url)

我正在尝试用Go构建一个简单的路由器。据我所知,url.Parse返回一个错误和解析后的url,尽管在作业中包含了这两个,但我仍然在这个问题的标题中收到错误func(router*Router)Get(urlStringstring,callbackfunc(Res,Req)){parsedUrl,err:=*url.Parse(urlString)router.Methods["GET"][parsedUrl]=callback} 最佳答案 尝试删除*url.Parse(urlString)中的*。func(router*Rout

go - 为什么变量是零,尽管我把对象的引用放在那里

我不明白为什么在调用ConnectToMongo后变量session仍然是nil。如果ConnectToMongo不接受像ConnectToMongo(sessionmgo.Session)这样的引用类型,但引用变量类型*mgo.Session必须保存,我会理解返回函数ConnectToMongo后packagemainimport("fmt""gopkg.in/mgo.v2")funcConnectToMongo(session*mgo.Session){ifsession==nil{varerrerrorsession,err=mgo.Dial("localhost:27028")

go - 如何导入HTML类型?

html/templatedocumentation提到一个HTML类型:TypesHTML,JS,URL,andothersfromcontent.gocancarrysafecontentthatisexemptedfromescaping.如何导入和使用它?我试过下面的代码,它抛出一个“undefined:HTML”错误(GoPlayground):packagemainimport("fmt""html/template")funcmain(){fmt.Println(HTML(`Hi`))} 最佳答案 用包名定义类型:主要

go - 你如何将 syscall.Errno 传递给 os.Exit?

假设我尝试获取锁,但失败了,然后想退出程序。err=syscall.Flock(lockfd,syscall.LOCK_EX|syscall.LOCK_NB)iferr==syscall.EAGAIN{os.Exit(err)}问题是您需要将一个整数传递给os.Exit。我试过:os.Exit(int(err))os.Exit(syscall.EAGAIN)//Compilesfine,butthecastfails..noideawhyeerr,_:=err.(*syscall.Errno);os.Exit(int(*eerr))//panicsreflect.ValueOf(err