jjzjj

serialization

全部标签

json - 将字符串数组序列化为json

所以,我一直在鼓捣go,遇到了一个小问题。我有一些东西需要像这样序列化成一个json。{"name":"Steel","things":["Iron","Carbon"]}保存它的结构看起来像这样。typeMessagestruct{namestringthings[]string}我的代码本身是这样的funcmain(){i:=Message{"Steel",[]string{"Iron","Carbon"}}fmt.Println(i);b,_:=json.Marshal(i)fmt.Printf("Json%v\n",b);varoMessage;json.Unmarshal(b

json - Golang JSON 序列化/反序列化

我有一个结构如下:typeNodestruct{NamestringChildren[]*NodeValues[]string}我还有一组描述我的树的json文件,例如:{"something":{"someblah":["fluf","glah"],"someother":{"someotter":["blib","fnar"]}}}如何将这些文件反序列化为结构?我发现的所有示例似乎都需要具有命名键/值对的不同结构。为此,结构是关键:关键是结构名map内容是child列表内容是值我无法理解如何将此逻辑映射到golangjson序列化程序中。 最佳答案

performance - golang json/gob/xml 中的序列化性能

转到标准库,Json序列化性能问题...JSON比XML和GOB慢,而json大小小于xml文件大小?请帮忙指出有什么错误吗?docker@dockhost:~/go/projects/wiki$gorunencoding.go2016/05/2400:52:16SerializationbyJSONelapsed:2152195us2016/05/2400:52:16students.json191777822016/05/2400:52:17SerializationbyGOBelapsed:748867us2016/05/2400:52:17students.gob9305166

json - 解析时间时Golang在Mac OSX上的空位置

在我的本地OSX机器上将时间戳字段从JSON解码为struct时,time.Time字段的Location是“空”而不是UTC。这对我在本地运行单元测试是有问题的(相对于在Location被正确设置为UTC的CI服务器上)。这是示例代码:https://play.golang.org/p/pb3eMbjSmvpackagemainimport("fmt""time")funcmain(){//Ignoringtheerrjustforthisexample'ssake!parsed,_:=time.Parse(time.RFC3339,"2017-08-15T22:30:00+00:0

serialization - golang stringize struct 结构(没有数据)

是否有开箱即用的golang方法可以让我对go结构进行字符串化(序列化为字符串)。用零值序列化是一种选择,但是一个丑陋的选择。 最佳答案 这是一个示例程序,它使用encoding/json包来序列化和反序列化一个简单的结构。请参阅代码注释以获取解释。请注意,我在这里省略了错误处理。packagemainimport("bytes""encoding/json""fmt")//yourdatastructureneednotbeexported,i.e.canhavelowercasename//allexportedfieldswi

http - 有没有办法序列化golang http请求对象并持久化在数据库中

我需要在golang代码中进行http调用。我的服务器代码将创建http请求对象并将其放入数据库。工作代码将从数据库中获取数据,并且应该能够使用持久化的请求对象进行http调用。是否可以通过序列化http请求直接将请求对象持久化到DB中,还是需要在数据库中单独添加method/URL/body? 最佳答案 没有很好的方法来序列化http.Request结构本身(请参阅下面的注释),但您可以将请求序列化回HTTP/1.1有线格式(也可以反序列化)。这可以使用Request.Write来完成和http.ReadRequest:funcc

go - 如何在 GoLang 中使用 GOB 编码序列化嵌套结构?

我有几个示例嵌套结构,需要序列化它们。我正在使用encoding/gob库,它将结构数据转换为字节,使用encoding/base64库将字节转换为可读的base64格式。但是,当我运行我的示例代码时,我收到了一个serializationerror错误。我不明白为什么会发生这种情况以及如何解决这个问题。我按照这个例子:Golangserializeanddeserializeback代码如下:主要包import("bytes""encoding/base64""encoding/gob""errors""fmt")typeHellostruct{greetingstring}type

concurrency - 戈朗 : Producer/Consumer concurrency model but with serialized results

funcmain(){jobs:=[]Job{job1,job2,job3}numOfJobs:=len(jobs)resultsChan:=make(chan*Result,numOfJobs)jobChan:=make(chan*job,numOfJobs)goconsume(numOfJobs,jobChan,resultsChan)fori:=0;i在上面的示例中,作业被推送到jobChan中,goroutines将其从jobChan中拉出并并发执行作业并将结果推送到resultsChan中。然后我们将从resultsChan中提取结果。问题一:在我的代码中,没有序列化/线性化

serialization - `fmt` 包的函数是否支持数组的格式化程序?

我正在尝试提交一封包含多个参数的电子邮件,并且我在一个单独的文件中有一些电子邮件,其中包含一些打印动词,但由于动词太多,我最终得到了这样一行:message:=fmt.Sprintf(util.CONTACT_EMAIL,form.Name,form.Email,form.Email,form.Phone,form.Phone,form.Message,...)它一直在继续,看起来很糟糕。我重复一些动词的原因是为了获得href,例如%s,等等。如果有人对此有更好的方法,我真的很想知道。但是关于我的问题..Go是否有一个类似于vsprintf在PHP中?它基本上以一个数组作为参数,所以它

go - 序列化结构字段以预先存在 byte slice

我有一个设置,可以通过网络接收数据并将其序列化到我的结构中。它工作正常,但现在我需要将数据序列化到slice缓冲区以通过网络发送它。我试图避免分配超过需要的空间,所以我已经设置了一个缓冲区,我想为我的所有序列化写入该缓冲区。但我不确定该怎么做。我的设置是这样的:recieveBuffer:=make([]byte,1500)header:=recieveBuffer[0:1]message:=recieveBuffer[1:]因此,我尝试将结构中的字段写入message,并将所有字段的总字节数作为header的值。这就是我反序列化结构的方式://Deserialize...func(u