草庐IT

marshaling

全部标签

json - golang : Marshal []os. FileInfo 到 JSON

基本上,我想要实现的是通过os.ReadDir()获取目录的内容,然后将结果编码成json。直接执行json.Marshal()没有异常,但给了我一个空结果。所以我尝试了这个:func(f*os.FileInfo)MarshalerJSON()([]byte,error){returnf.Name(),nil}然后Go告诉我os.FileInfo()是一个接口(interface),不能这样扩展。执行此操作的最佳方法是什么? 最佳答案 将数据打包成一个可以序列化的结构:http://play.golang.org/p/qDeg2bf

go - 相当于 json marshal 的 Stringer

我可以实现Stringer来指定fmt.Print()如何将我的自定义类型写入字符串。jsonmarshal有等效项吗?我想在go中存储唯一值,并在json中将其表示为一个slice。在go中使用slice并不是最佳选择。这个O(n)插入似乎是不必要的-二叉树或映射会更快,特别是因为我一直保持列表排序。 最佳答案 是的,json.Marshaler和json.Unmarshaler.实现MarshalJSON和UnmarshalJSON会给你想要的东西。 关于go-相当于jsonmars

go - 有没有办法在 golang 中自定义 Marshaling Protobuf?

有没有一种方法可以像encoding/json为custommarshal/unmarshaljson提供方法一样自定义marshal/unmarshalprotobuf?在戈朗? 最佳答案 更新:proto3go库(https://google.golang.org/protobuf/proto)不再支持自定义编码。弃用:GoDoc提到Marshaler和Unmarshaler接口(interface)。typeMarshalerinterface{Marshal()([]byte,error)}typeUnmarshalerin

json - 如何在 Go json marshal 中显示空对象而不是空结构或 nil

在为结构指针执行json.Marshal()时,我需要显示json的空对象{}。我只能输出null值或空结构值。如果person键用&Person{}或new(Person)填充,它将显示如下所示的空结构:{"data":{"person":{"name":"","age":0},"created_date":"2009-11-10T23:00:00Z"}}如果我们根本不初始化它,它将显示null。{"data":{"person":null,"created_date":"2009-11-10T23:00:00Z"}}我想显示"person":{}。可能吗?完整代码去Playgrou

json - 单值上下文中的多值 json.Marshal()

这个问题在这里已经有了答案:Multiplevaluesinsingle-valuecontext(6个答案)Multiple-valueinsingle-valuecontextERROR(1个回答)StringtoFloat64:multiple-valuestrconv.ParseFloat()insingle-valuecontext(1个回答)关闭5年前。Here你可以看到这段代码:packagemainimport("fmt""encoding/json")funcmain(){map1:=map[string]map[string]interface{}{}map2:=m

xml - 在 Go 中将 Marshall 映射到 XML

我正在尝试将map输出为XML数据,但我收到以下错误:xml:unsupportedtype:map[string]int编码映射适用于JSON,所以我不明白为什么它不适用于XML。使用结构真的是唯一的方法吗? 最佳答案 我最终按照DaveC的建议使用xml.Marshaler解决了这个问题//StringMapisamap[string]string.typeStringMapmap[string]string//StringMapmarshalsintoXML.func(sStringMap)MarshalXML(e*xml.E

json - GoLang 中的 Marshall 和 UnMarshall JSON 内容

我有一个结构如下的示例json文件{"method":"brute_force","bc":"select*fromblah;","gc":["selectsum(year)fromblah;","selectcount(*)fromtable;"]}我正在尝试编写一个可以读取此文件并操作json内容的go程序。packagemainimport("fmt""encoding/json""io/ioutil")typeResponse2struct{methodstringbcstringgc[]string}funcmain(){file,_:=ioutil.ReadFile("co

json - 防止 Marshal 在结构的字符串字段上转义引号

我在解析以下结构时遇到问题,其中JsonData是存储在数据库中的JSON字符串。typeUserstruct{Iduint64`json:"user_id"`JsonDatastring`json:"data"`}user:=&User{Id:444,JsonData:`{"field_a":73,"field_b":"astring"}`,}如果我json.Marshal这个,它会转义引号,但会给我JSON:{"user_id":444,"data":"{\"field_a\":73,\"field_b\":\"astring\"}"}有没有办法告诉编码器避免转义JsonData字

json - 覆盖 json.Marshal 使用的布局来格式化 time.Time

在Golang中,有没有办法让通用encoding/jsonMarshal在编码time.Time字段时使用不同的布局?基本上我有这个结构:s:={"starttime":time.Now(),"name":"ali"}并且我想使用encdoding/json的Marshal函数编码为json,但我想使用我的自定义布局,我想在某个地方time。Format(layout)正在被调用,我想控制那个布局, 最佳答案 受zeebo回答的启发,并在对该回答的评论中进行了阐述:http://play.golang.org/p/pUCBUgrj

json - json.RawMessage 编码(marshal)

请在此处找到代码http://play.golang.org/p/zdQ14ItNBZ我将JSON数据保存为RawMessage,但无法将其解码。我需要对包含结构进行编码和解码,但我希望仍然能够获取JSON字段。代码:packagemainimport("encoding/json""fmt")typeDatastruct{NamestringIdintJsonjson.RawMessage}typeData2struct{NamestringIdint}funcmain(){tmp:=Data2{"World",2}b,err:=json.Marshal(tmp)iferr!=nil