jjzjj

marshalling

全部标签

xml - 为数组自定义 XML Marshal,中间有字符串

我有一段XML需要读写。这是一个的数组用除了最后一个实体之外。aANDbANDc我的Go模型是这样的typeConditionstruct{XMLNamexml.Name`xml:"condition"json:"-"`Labelstring`xml:"label"`}typeConditionsstruct{ConditionList[]Condition`xml:"condition,omitempty"`Operatorstring`xml:"operator"`}如果我编码结构,运算符只在底部出现一次。正如预期的那样abcAND我如何让运算符在除最后一个条件之外的每个条件之后出

json - 读取 map[string]interface{} 中的数据

源服务器返回多个对象的Json格式的数据接口(interface),我们如何解析这些数据?我正在使用JSONmap[string]interface{}类型的变量来保存来自服务器的结果ThedatareturnfromServer."data":[{"group":"PAA_TEST","id":"2018-04-10T09:24:18.000000Z","name":"PAA_STATION","released":true,"version":33},{"group":"PAA_TEST","id":"2018-03-19T10:50:21.000000Z","name":"PAA

go - 解码为接口(interface)类型

我有一些代码被丢弃了,实际上我被难住了——我以前使用过RPC和JSON方面的东西,但是当它在本地工作正常时,我似乎无法让它在RPC上工作。packagemainimport("log""net""net/rpc""net/rpc/jsonrpc""reflect")typeFoointerface{SayHello()error}typefakeFoostruct{internalValuestring}funcNewFakeFoo()*fakeFoo{f:=&fakeFoo{}f.internalValue="123456789012347"returnf}func(m*fakeFo

json - 将纪元时间戳解码为 time.Time

使用此结构运行Decode()会产生“时间戳”列错误:typeMetricsstruct{Idint`orm:"column(id);auto"`Namestring`orm:"column(name);size(255);null"json:"metric_name"`json:"lon"`Timestamptime.Time`orm:"column(timestamp);type(datetime)"json:"timestamp;omitempty"`}错误:parsingtime"1352289160"as""2006-01-02T15:04:05Z07:00"":cannot

json - 编码到 JSON 结构扩展了另一个具有相同字段标签的结构

我有2个struct,其中包含一个具有相同标签(id)和相同JSON注释(`json:"id"`)的字段。一个struct(Bar)包含来自另一个struct(Foo)的字段标签及其值.我想用id字段对包装器structBar进行JSON编码,但内部字段具有不同的JSON注释(例如`json:"foo_id"`)。我找不到办法,但看起来应该可行?快速浏览一下https://golang.org/pkg/encoding/json/我找不到解决方案。有可能吗?有什么解决办法吗?我试图避免get/set的所有样板在结构之间复制/粘贴值,我希望这是可行的。packagemainimport(

c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?

这两个词的意思相同吗?如果不是,两者有什么区别? 最佳答案 我使用术语“编码”来表示“将数据/参数置于一种形式,使它们可以通过只接受特定形式的接口(interface)”,而“序列化”具体表示“用字节流表示数据”。也就是说,序列化是编码的一种方法,但在我称之为编码的领域之外也有用途。一些非序列化的编码(marshal)处理示例:将系统调用的参数放入内核系统调用入口点接受的寄存器中。(我不会将此称为序列化,因为寄存器之间没有抽象顺序,并且因为某些数据可能位于实际寄存器之外,而是由它们指向。)从JSON或XML源构建树结构以传递给需要树

json - 从编码结构 Golang 中删除转义字符

编码结构后我的JSON输出格式有很多转义字符和双引号。我试过使用编码器、Marshalling、RawMessages,强制删除部分字符串。data:=ChannelData{}iferr:=rows.Scan(&data.Idx,&data.MciIdx,&data.Channel,&data.MatchIdx,&data.MatchCx,&data.StartTs,&data.EndTs,&data.Len,&data.MatchStartTs,&data.MatchEndTs,&data.MatchLen,&data.Happened,&data.Instance);err!=n

json - 如何在 Go 中使用不同的 json 标签将 json 从一个结构编码到另一个结构?

我正在创建一个Go应用程序,它使用来自多个来源的数据,这些来源都具有相似的数据,但数据/响应的结构不同。这些响应需要编码到一个通用结构中,然后发送到另一个服务。通用结构:typecommonstruct{IDstring`json:id`GivenNamestring`json:given_name`FamilyNamestring`json:family_name`Email:string`json:email`}一个回应:{"id":"123","first_name":"john","last_name":"smith","email":"js@mail.com"}另一个回复:{

Golang 编码/json 编码(marshal)拆收器

如encoding/json包文档中所述,Marshaltraversesthevaluevrecursively.IfanencounteredvalueimplementstheMarshalerinterfaceandisnotanilpointer,MarshalcallsitsMarshalJSONmethodtoproduceJSON.到底在哪里inthecode执行此测试吗?换句话说,encoding/json如何检查t类型的值v是否实现了Marshaller界面? 最佳答案 这里:Golangencoding/jso

mysql - 正确删除 Go 中的第二个 json.Marshal

无论出于何种原因,我在尝试使用MySQL存储在Go中构建一个简单的RestAPI时,添加了第二个json.Marshal,它是双重编码并生成带有转义引号等的结果。我可以去掉引号,但我认为我不应该首先发生两个json.Marshal事情。问题是双重的-1)哪个适合删除(倾向于第一个,因为“结果”应该是更大的数组)和2)如何在删除后保持代码运行?当我开始遇到各种错误时,我不能简单地删除第一个。以下是代码的相关部分:typeVolumestruct{IdintNamestringDescriptionstring}...向前跳过....varresult=make([]string,1000