Go语言中文网 为您找到相关结果 220

go json解析Marshal和Unmarshal

http://www.tuicool.com/articles/BFruI3 go语言提供一个json解析的包。见 http://golang.org/pkg/encoding/json/ 官方同时提供了一篇文章 JSON and Go 讲述json包的用法, 该文章同时存在中文翻译: JSON与Go 。 看过上述两篇文章后,基本使用应该就没问题了。 同时,贴几个官方的例子,方便理解。 Decoder: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package main import ( "encoding/json" "fmt" "io" "log" "str...阅读全文

博文 2016-04-14 02:00:01 jiangxiangxuan

go interface 转 string,解析json

package main import ( "encoding/json" "fmt" ) var user map[string]interface{} func main() { userJson := "{\"username\":\"system\",\"password\":\"123456\"}" json.Unmarshal([]byte(userJson), &user) fmt.Println(user) //打印结果:map[password:123456 username:system] username := user["username"] fmt.Println("username ==", username) //username == system //判断u...阅读全文

博文 2015-11-09 15:00:01 aqiang912

Golang http.NewRequest GET带Header获取远程网页,并解析gzip压缩

最近小研究了一下GO语言,试着自己写了一个GET获取远程网页的例子。代码如下: func loginPre1() map[string]interface{} { client := &http.Client{} reqest, err := http.NewRequest("GET", "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=Z3V5dWV0ZnRiJTQwMTYzLmNvbQ%3D%3D&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.5)&_=", nil) if err != ni...阅读全文

博文 2015-06-17 20:18:52 u011509543

GO语言:json转map

使用go语言将json解析到map里,这里主要使用到encoding/json包下的Unmarshal()函数。 函数原型: func Unmarshal(data []byte, v interface{}) error Unmarshal函数解析json编码的数据并将结果存入v指向的值。 json数据: { "device": "1", "data": [ { "humidity": "27", "time": "2017-07-03 15:23:12" } ] } 整体代码: package main import ( "encoding/json" "fmt" ) func main() { json_str := "{\"device\": \"1\",\"data\": [{\"...阅读全文

博文 2017-08-21 01:29:44 Mdroid

golang之flag.String

无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作。如:./main -b /home/backupdir -d true 那么如何更好的解析这些参数呢?前两周自己做项目时是通过 range os.Args 来解析这些参数。今天看到了 flag.String 这个方法,感觉之前做的好傻,觉得更应该用golang自带的flag.String来解析参数。 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 ) 7 8 func main() { 9 backup_dir := flag.String("b", "/home/default_dir", "backup path") 10 de...阅读全文

博文 2015-07-20 03:00:00 hezhixiong

golang beego接受post json字符串解析返回JSON数据

在 API 的开发中,我们经常会用到 JSON 或 XML 来作为数据交互的格式,如何在 beego 中获取 Request Body 里的 JSON 或 XML 的数据呢? 在配置文件里设置 copyrequestbody = true在 Controller 中json 用来解析JSON的包ob定义的struct func (this *ObjectController) Post() { var ob models.Object json.Unmarshal(this.Ctx.Input.RequestBody, &ob) objectid := models.AddOne(ob) this.Data["json"] = "{\"ObjectId\":\"" + objectid + ...阅读全文

博文 2016-11-22 14:00:02 shachao888

go (golang) DNS域名解析实现

之前使用过GO语言写了一个实时图片下载程序,主要考虑到GO语言的DNS解析对协程支持友好, 即 DNS解析时不会阻塞执行线程,只会阻塞当前协程,顺便研究了一下GO的net.LookupHost/ResolveIPAddr 实现方式。下面一段描述翻译自go语言的官方文档 https://golang.org/pkg/net/域名解析: 域名解析函数,Dial函数会间接调用到,而LokupHost和LookupAddr则会直接调用域名解析函数,不同 的操作系统实现不同, 在Unix系统中有两种方法进行域名解析: 1)纯GO语言实现的域名解析,从/etc/resolv.conf中取出本地dns server地址列表, 发送DNS请求(UDP 报文)并获得结果 2) 使用cgo方式, 最终会调用到c...阅读全文

博文 2015-10-28 04:00:35 mumumuwudi

golang中goconfig包使用解析

注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对 Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于对注释的极佳支持;除此之外,支持多个配置文件覆盖加载也是非常特别但好用的功能。 下载安装 您可以通过以下两种方式下载安装 goconfig: gopm get...阅读全文

博文 2015-10-28 22:00:41 chenbaoke

golang xml解析

golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件地址:http://qzonestyle.gtimg.cn/qzone/vas/opensns/res/doc/addresslist.ziphttp://wiki.opensns.qq.com/wiki/【QQ登录】get_info package main import ( "os" "encoding/xml" // "encoding/json" "io/ioutil" "fmt" ) type Location struct { CountryRegion []CountryRegion } type CountryRegion s...阅读全文

博文 2015-02-03 10:00:02 ____追梦人

golang json 格式文件解析

package main import ( "bytes" "encoding/json" "fmt" "log" "os" "regexp" "time" ) const configFileSizeLimit = 10 << 20 var defaultConfig = &struct { netTimeout int64 fileDeadtime string }{ netTimeout: 15, fileDeadtime: "24h", } //有了`json:network`这种注释,后面json解析就可以把相应的数据塞到对应的结构里面来 type Config struct { Network NetworkConfig `json:network` Files []FileCo...阅读全文

01-Golang可以做什么

![Golang的发展方向: 区块链研发工程师 Go服务器端/游戏软件工程师 Golang分布式/云计算 Golang的应用方向: 区块链技术:简称BT Blockchain technoglogy,也被称为 分布式账本技术,是一种互联网数据库技术,其特点是去中心化,公开透明,让每个人均可参与数据库记录。 后端服务器应用: 吃撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标 美团 云计算/云服务的后台应用 CDN的调度系统,分发系统,监控系统,短域名服务,CDN内部开放平台,运营报表系统以及其他一些小工具等。 京东云 Golang的计算能力很强 ](https://static.studygolang.com/180918/06db76e0112...阅读全文

Go-XPath解析

使用Go做爬虫首先想到了XPath解析来做于是上网搜在github上找到了一个Go写的Xpath的库貌似是官方维护的 官方地址: http://gopkg.in/xmlpath.v1 xmlpath.v1 中只有三个结构体 Node 代表当前解析出来的节点 并且该节点是被处理过的可以被Path访问的 Path 代表指定的寻找路径 Iter Node的集合 这么讲很不清楚还是上代码讲解吧 package main import ( "fmt" "os" xmlpath "gopkg.in/xmlpath.v1" ) func main() { // nodename() // getFieldValue() getSpecifiedValue() } var file *os.File var...阅读全文

博文 2015-06-18 09:09:10 u012807459

Go命令行参数解析flag包

go语言提供的flag包可以解析命令行的参数,代码: package main import ( "flag" "fmt" ) func main() { //第一个参数,为参数名称,第二个参数为默认值,第三个参数是说明 username := flag.String("name", "", "Input your username") flag.Parse() fmt.Println("Hello, ", *username) } 编译: go build flag.go 运行: ./flag -name=world 输出: Hello, world 如果不输入name参数: ./flag 则输出: Hello...阅读全文

博文 2015-06-02 03:00:16 baiyuxiong

golang Unmarshal 小问题

正常情况: func main() { str := `{"expires_in":2592000,"refresh_token":"22.84564433384c3dffdf8c2b123b6da8de.315360000.1756090115.2605827041-6701125","access_token":"21.060aaae1049e2604d0fa71d992aea516.2592000.1443322115.2605827041-6701125","session_secret":"6ce3910403a953006916f1fafef433c5","session_key":"9mnRdL3CfpvaeMqn4g2A4f1b+olbN4iD079GhsDIumsoSy9A...阅读全文

博文 2015-08-28 12:00:02 北京_

golang http client使用unix domain socket

 func fakeDial(proto, addr string) (conn net.Conn, err error) { return net.Dial("unix", sock) } tr := &http.Transport{ Dial: fakeDial,} client := &http.Client{Transport: tr} resp, err := client.Get(http://d/test) 注意Get/Post调用的必须是一个有效的url, (http://xxxx.xxx/path not unix://...), 这里的域名没有意义, 不会用来连接...阅读全文

博文 2015-06-22 20:01:26 linsanhua

golang json解析之大小写

package main import ( "encoding/json" "fmt" _ "time" ) type Header struct { FileName string Host string Offset string Timestamp string } type JsonData struct { header string `json:"xx"` Body string `json:"body"` } func main() { testJson() } func testJson() { var Data JsonData /*time1 := time.Now().Unix() x := Header{FileName: "yangheng", Host: "loc...阅读全文

博文 2015-10-13 21:00:16 webyh

golang动态解析xml

package main import ( "encoding/xml" "fmt" "mahonia" "os" "strconv" "text/template" ) type Attribute struct { Name string Value string } type Token struct { Name string Attributes []Attribute Tokens []Token } type Result struct { Root Token } var result = Result{} func main() { if !parse("config.xml") { return } if !output("code_h.tpl", "code.h") {...阅读全文

博文 2015-06-18 08:02:33 esrrhs

golang time

1 2 3 4 5 6 7 月日时分秒年时区标准以这个对应 const ( 43 ANSIC = "Mon Jan _2 15:04:05 2006" 44 UnixDate = "Mon Jan _2 15:04:05 MST 2006" 45 RubyDate = "Mon Jan 02 15:04:05 -0700 2006" 46 RFC822 = "02 Jan 06 15:04 MST" 47 RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone 48 RFC850 = "Monday, 02-Jan-06 15:04:05 MST" 49 RFC1123 = "Mon, 02 Jan 2006 15:04:0...阅读全文

博文 2014-10-04 19:26:01 ggaaooppeennngg

goconfig使用解析

注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对 Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于对注释的极佳支持;除此之外,支持多个配置文件覆盖加载也是非常特别但好用的功能。 下载安装 您可以通过以下两种方式下载安装 goconfig: gopm get...阅读全文

博文 2014-10-04 19:27:34 dandan.fs

golang实现dns域名解析(一)

本文将详细讲解如何用go语言一步一步实现dns域名解析的过程,并简单介绍点dns有关的知识,直接开始正题吧。 首先我们要了解dns解析的过程,没有了解的请看这里DNS入门(转)很详细。扫盲结束后,我们需要了解下dns报文格式,知道了报文的格式是怎样的,才可以写代码构造dns请求包: dns请求和应答都是用相同的报文格式,分成5个段(有的报文段在不同的情况下可能为空),如下: Header段是报文的头部,它定义了报文是请求还是应答,也定义了其他段是否需要存在,以及是标准查询还是其他。 Header包含如下字段: 各字段分别解释如下: ID:请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。 QR:1个比特位用来区分是请求(0)还是...阅读全文

博文 2017-06-04 04:46:07 chase-wind

JSON 解析器 jsoniter

## jsoniter jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器,同时提供 [Java](https://github.com/json-iterator/java) 和 [Go](https://github.com/json-iterator/go) 两个版本 * Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快 10 倍之多,即使在数据绑定的用法下也有同样的性能优势。无耻地献上自己的 [跑分](http://jsoniter.com/benchmark.html) * 非常易于使用的 api ,允许你使用任何风格或者混搭的方式来解析 JSON 。给你前所未有的灵活性。来看看这些 [API 们](http://js...阅读全文

Go 语言的 parse 解析器

解析器起始很简单,但是用处很大。当我们解析 XML文件,json文件,对源代码进行静态分析都是需要解析器。 Go 语言的 parser 是一个十分基础的解析器,采用递归下降语法进行解析。 接下来,我就进行逐一的分析!(待完成) $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for...阅读全文

博文 2015-06-17 23:00:46 xiaorenwuzyh

go语言解析INI文件

package main import ( "bufio" "bytes" "io" "os" "unicode" ) const ( stat_none = iota stat_group stat_key stat_value stat_comment ) type Attr struct { Name string Value string Comment string next *Attr } type Element struct { Element string Attr *Attr next *Element } type Decoder struct { state int b byte t bytes.Buffer r io.ByteReader err error m *...阅读全文

博文 2014-10-04 19:26:43 RTFSC

go提交json、获取json、解析json

猜你喜欢Go语言的Json管理模式golang json string remove field[笔记] Golang JSONgo: json解析库go-simplejson使用Golang 1.6: 数据库NULL值遇到JSON和模板(Template)beego下ie提示下载jsongolang中json编码和解码com.google.gson.JsonArray 转换成listGo中的JSON 一、提交json 参考:http://stackoverflow.com/a/24455606 func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) var jsonStr = []by...阅读全文

博文 2016-06-02 17:00:11 daisongwan

golang解析json报错:invalid character '\x00' after top-level value

golang解析json报错:invalid character '\x00' after top-level value 手动复制字符串:{"files":["c:/test/output/temp/file_export0000.out","c:/test/output/temp/file_export0001.out","c:/test/output/temp/file_export0002.out","c:/test/output/temp/file_export0003.out","c:/test/output/temp/file_export0004.out"]} 发现没有问题 原来是封装传出字符串的时候出问题了 *len = output.length() + 1; char*...阅读全文

博文 2017-11-30 16:00:00 zhishuai

golang学习的点点滴滴:flag包解析命令行参数

import ( "fmt" "flag" ) func main() { var in *string = flag.String("in", "infile", "input infile...") var out *string = flag.String("out", "outfile", "input outfile...") var op *string = flag.String("op", "op..", "ops...") // 命令行使用 xxx.exe -in thisisin -out thisisout -op thisisops flag.Parse() // 解析 if nil != in { fmt.Println("inFile : ", *in, " ou...阅读全文

博文 2014-10-04 19:27:45 亓斌哥哥

Go 解析XML

今天看了看XML的解析,挺别致的和C++,Java之类的解析很是不同。 GO中将XMl的结构解析成一个数据结构,类似于一个结构体。 package main import ( "encoding/xml" "fmt" "os" ) type Address struct { City, State string } type Person struct { XMLName xml.Name `xml:"person"` Id int `xml:"id,attr"` FirstName string `xml:"name>first"` LastName string `xml:"name>last"` Age int `xml:"age"` Height float32 `xml:"heig...阅读全文

博文 2016-01-15 17:00:03 king1076

关于json解析的问题,求教各位大神

您好,我刚学golang,有个解析json的问题请教各位,谢谢了,我写了以下代码,s1和s2的值能够得到,但是s3中的p1和p2的值不知如何解析到: var filterInfoList map[string]interface{} strFilter := `{"s1":"ddd","s2":"ppp","s3":[{"p1":"ok1"},{"p2":"ok2"}]}` err := json.Unmarshal([]byte(strFilter), &filterInfoList) if err != nil { fmt.Println("error in translating,", err.Error()) return } fm...阅读全文

goconfig - 课时 1:goconfig 使用解析

注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对 Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于对注释的极佳支持;除此之外,支持多个配置文件覆盖加载也是非常特别但好用的功能。 下载安装 您可以通过以下两种方式下载安装 goconfig: gopm get...阅读全文

[翻译]编译器(7)-扫描

文在此。 ————翻译分隔线———— 编译器(7)-扫描 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 现在终于可以开始在扫描器上工作了。 词法分析 那么,从哪里开始呢? 这是最难的一部分,对我来说,扫描看起来应该挺简单的,但是很快我就迷失在细节里。有许多种实现扫描器的方法,我只会向你展示其中的一种。这里是 Rob Pike 在一次演讲中的演示文稿,是关于另外一种很酷的方法:在 Go 中的词法扫描。 扫描器的基本原理就是从顶到底、从左到右、直到源代码的结尾进行检索。每次,发现所需要的元素,就报告词法串被找到,标识符会告诉解析器它是什么,以及找到它的位置。 有限状态机 我现在不会真正深入到...阅读全文

博文 2014-10-09 16:20:24 mikespook

[翻译]编译器(9)-解析

文在此。 ————翻译分隔线———— 编译器(9)-解析 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 第七部分:扫描 第八部分:抽象语法树 长征已经走了很远。我们概览了扫描和抽象语法树的基本概念。现在终于可以向着解析前进。 如果你已经开始与概念点不停的斗争,那么我需要警告你,从现在开始会变得越来越难。解析可能是你脑袋里已有的概念中最难的部分。我们将处理扫描器发现的词素,给它们提供一个含义,并且在 AST 中保存结果对象。 在继续前行前确保你已经理解了前面的资料。 解析对象 我们这个小语言的解析器可以说是相当的简单。与扫描器一样,我们有一个指向正在扫描的文件相关信息的指针。我们通过某种途...阅读全文

博文 2014-10-09 16:20:21 mikespook

当 DNS 解析器遇到 Go fuzzer 【未翻译】

Here at CloudFlare we are heavy users of the github.com/miekg/dns Go DNS library and we make sure to contribute to its development as much as possible. Therefore when Dmitry Vyukov published go-fuzz and started to uncover tens of bugs in the Go standard library, our task was clear. Hot Fuzz Fuzzing is the technique of testing software by continuous...阅读全文

IPFS基本使用

在IPFS新增一个文件 新建test.txt文件 打开终端,切换到桌面,新建一个文件夹test,切换到test中,通过vi新建一个文件test.txt,文件里面输入Hello World保存并且退出。 $ cd Desktop/ $ mkdir test $ cd test/ $ vi test.txt $ cat test.txt Hello World 将test.txt添加到ipfs节点 使用ipfs add命令添加: $ cd Desktop/test $ ipfs add test.txt added QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw test.txt $ ipfs cat QmUXTtySmd7LD4p6RG6rZW6R...阅读全文