草庐IT

marshaling

全部标签

xml - Golang XML 编码(marshal)两个相同的属性

我被迫使用一些设计不佳的XML,我试图将此XML读入Go结构。下面是一些示例数据:cpix1isabirdofspeciesx2......我的问题是我可以读取节点或者因为它们都包含属性“word”:main.NLWordfield"Word"withtag"word,attr"conflictswithfield"Valsi"withtag"word,attr"我开始认为解码可能是错误的方法,因为理想情况下我会以不同的方式构建数据。我应该使用其他方法读取XML并手动构建数据结构吗?typeValsistruct{Wordstring`xml:"word,attr"`Typestrin

sql - 数据库/sql Go 中的 JSON marshall 可为空类型值

我正在尝试弄清楚如何在Go中将可空类型(字符串、整数、时间)正确编码到JSON。我知道database/sql提供sql.NullTime、sql.NullInt等,但是当你整理这些值时,你会得到类似的东西{"first_name":{"Value":"","Valid":false,}}我真正想要的是{"first_name":null}我知道您可以实现自己的MarshalJSON来执行此操作(我在这里写过http://dennissuratna.com/marshalling-nullable-string-db-value-to-json-in-go/)但是我想知道是否有人知道更

json - 自定义 Json 编码(marshal)处理

我有一个第三方jsonapi可以在go中使用。它有一些端点以键值对的形式返回数据。例如,这里是状态的json:{"result":{"0":"done","1":"incomplete","2":"completed",....}}所以正如你所看到的,它不是一个数组,而是一个对象。是否可以将这种json编码为对象数组,如typeStatusstruct{IdintStatusstring}不使用额外的结构,比如typeStatusReposnestruct{Resultmap[string]string`json:"result"`}和提取值的代码? 最佳答

go - 编码(marshal)/解编码(marshal) reflect.Type

我创建了map[string]interface{}并且我想通过2个重置服务之间的映射传递多种类型。每次我编码时,我都会在应该包含reflect.Type的字段中得到空映射。ServiceType:map[]有可能吗?用于测试的代码:(KeyValuePair将代表map的单个值)并且MessageService可以替换为任何类型的类(class)data:=GenericHandlers.KeyValuePair{Key:"ServiceType",Value:reflect.TypeOf(MessageService.MessageService{})}Json,_:=json.M

go - 结构的 Json 编码(marshal)映射导致空对象

我定义了一个简单的对象:typeLinkstruct{Hrefstring`json:"href"`Titlestring`json:"href,omitempty"`}typeFoostruct{Linksmap[string]Link`json:"_links"`}foo:=new(Foo)foo.Links=make(map[string]Link,0)foo.Links["self"]=Link{Href:"/href"}将其编码为JSON后,我期望:{"_links":{"self":{"href":"/href"}}}但我得到的是:{"_links":{"self":{}}

go - 防止 json.Marshal time.Time 删除尾随零

我有类似下面的代码packagemainimport("fmt""time""encoding/json")typeMessagestruct{Timetime.Time`json:"timestamp,omitempty"`}funcmain(){t,_:=time.Parse("2006-01-02T15:04:05.999Z07:00","2017-05-01T15:04:05.630Z")msg:=Message{Time:t,}bs,_:=json.Marshal(msg)fmt.Println(string(bs[:]))}这打印{"timestamp":"2017-05-

json - 忽略 JSON Marshal 上不支持的类型错误

这是我的代码:funcdump(wio.Writer,valinterface{})error{je:=json.NewEncoder(w)returnje.Encode(val)}typeexamplestruct{NamestringFuncfunc()}funcmain(){a:=example{Name:"Gopher",Func:func(){},}err:=dump(os.Stdout,a)iferr!=nil{panic(err)}}程序将出现json:unsupportedtype:func()panic我的问题是,如何将任何内容编码为json,忽略那些编码无法处理的内

json.Marshal 返回奇怪的结果

我正在尝试将go结构转换为JSON。我以为我知道该怎么做,但我对这个程序的输出感到困惑。我错过了什么?packagemainimport"fmt"import"encoding/json"typeZoostruct{namestringanimals[]Animal}typeAnimalstruct{speciesstringsaysstring}funcmain(){zoo:=Zoo{"MagicalMysteryZoo",[]Animal{{"Cow","Moo"},{"Cat","Meow"},{"Fox","???"},},}zooJson,err:=json.Marshal(

json - 如何在 JSON 中自定义编码(marshal)映射键

我无法理解自定义编码int到string的奇怪行为。这是一个例子:packagemainimport("encoding/json""fmt")typeIntintfunc(aInt)MarshalJSON()([]byte,error){test:=a/10returnjson.Marshal(fmt.Sprintf("%d-%d",a,test))}funcmain(){array:=[]Int{100,200}arrayJson,_:=json.Marshal(array)fmt.Println("array",string(arrayJson))maps:=map[Int]bo

json - 为什么 json.Marshal 似乎生成了一个整数数组?

我正在努力研究Go语言,但我遇到了这个简单示例的第一个绊脚石:packagemainimport("encoding/json""fmt")typeMyStructurestruct{Integerint`json:"integer"`Labelstring`json:"label"`}funcmain(){ms:=&MyStructure{9001,"over9000"}msjson,_:=json.Marshal(ms)fmt.Println(msjson)//expect:{"integer":9001,"label":"over9000"}}我的输出如下:[1233410511