草庐IT

marshalling

全部标签

XML Marshal 在此 Go 示例中不起作用

在此代码中,返回的元素x没有正文-我相信MarshalIndent无法正常工作。我将无法使用structRecord。是否有任何解决方法可以按预期返回值。packagemainimport"fmt"import"encoding/xml"import"time"typeRecordstruct{aint64`xml:"a,omitempty"`bint64`xml:"b,omitempty"`cint64`xml:"c,omitempty"`dint64`xml:"d,omitempty"`eint64`xml:"e,omitempty"`fstring`xml:"f,omitempt

xml - 无法在 Go 中正确解码/编码动态 XML 结构

我有一个描述XML模式的xsd,我正在尝试在go结构中编写这个xsd的表示,以便我能够基于这个模式编码/解码XML。这是我为重现我遇到的问题而编写的一些goplayground代码。https://play.golang.org/p/ktJOsCDyLW在架构中,标签video和web是动态的(因为它们都可以在media下出现不止一次,并且具有不同的里面的内容)。我尝试编写一个动态结构以及Unmarshaller/Marshaller接口(interface),如示例所示,我似乎能够执行解析,但它解码/编码内部内容不正确,忽略名称和URL列表,只采用一个元素每一个。我不确定这里的问题是

json - 戈朗 : Multiple structs marshall issue: json format

对于以下代码,我得到错误:typeAstruct{B_j[]B`json:"A"`}typeBstruct{XstringYstring}funcmain(){xmlFile,_:=os.Open("test.xml")b,_:=ioutil.ReadAll(xmlFile)vartrooterr2:=xml.Unmarshal(b,&rpc)iferr2!=nil{fmt.Printf("error:%v",err2)return}for_,name:=ranget.name{t:=A{B_j:[]B{X:name.text,Y:name.type}}//line:#25s,_:=j

json - 具有非简单类型的 GoLang JSON Marshal omitempty - 可以避免指针吗?

下面的代码是解释。我可以使用非简单类型的唯一方法是使该类型成为指针。是否有不使用指针的替代解决方案?代码不工作:typeFoostruct{BarBar`json:"bar,omitempty"`}typeBarstruct{Bazstring`json:"baz"`}funcmain(){foo:=Foo{}jsonBytes,_:=json.Marshal(foo)fmt.Printf("%s\n",jsonBytes)}输出:{"bar":{"baz":""}}代码工作,但不是我想要的:typeFoostruct{Bar*Bar`json:"bar,omitempty"`}typ

JSON-RPC, "cannot unmarshal object"

我正在尝试了解JSON-RPC的工作原理,并正在使用Go语言(golang)对其进行测试。Go程序运行良好。它做了它应该做的。但是当我尝试通过telnet发出原始请求时,它给出了一个错误。这里描述了工作和super简单的JSON-RPC服务器://rpc_json_server.gopackagemainimport("log""net""net/http""net/rpc""net/rpc/jsonrpc")//------------------------------------------------------------------------------//Types//

json - 将复杂的 JSON 转换为 Golang 中的 map

如何在golang中将复杂的JSON对象转换为具有所有正确类型的映射。我是否绝对必须做典型的Golang事情,即我用我知道会出现的字段创建一个结构,或者是否有一种通用的方法来获取所有正确类型的字段?这是我想转换为map的JSON示例:{"people":[{"diffs":[77],"original":{"name":"Nick","active":"Active","email":"nick@example.com"},"id":"21"}]} 最佳答案 您可以构建一个带有类型断言开关的递归函数,以将JSON数组类型断言到多维映

json - 如何使用 MarshalJSON 将结构转换为具有自定义字段类型的公共(public)结构

我有一个类型“Book”,我从另一个返回json的接口(interface)读取。读取json并处理数据后,我必须将图书转换为公共(public)图书类型以隐藏字段并更改输出格式。我的问题是,同一字段(ISBN)的输入类型有时是字符串,有时是整型。我认为最简单的解决方案是使用json.Number来解码数据。这行得通-但我需要在不同字段的传出json上使用字符串......这就是我需要帮助的地方。我会有一个自定义类型,我可以在字段的公共(public)结构中设置它,我想在其中将output-json-field设置为字符串。我在示例中将自定义类型命名为“mytype”。(真实数据是嵌套

json - 去测试失败,JSON应该是空的 slice

我正在测试一段代码,称为Compile://Compiletakesincode,andreturnsJSON//bytesandanerroriftherewasonefuncCompile(instring)([]byte,error){//iteratethrougheverylineinthecodefor_,line:=rangestrings.Split(in,"\n"){//Dividethelineintosections//foreasierprocessingtokens:=strings.Split(line,"")for_,a:=rangeavailableEx

json - Marshal/Unmarshal int 类型

我使用int类型来表示枚举。当我将它编码为JSON时,我想将它转换为字符串,据我所知,我应该实现UnmarshalJSON和MarshalJSON,但它提示:marshalerror:json:errorcallingMarshalJSONfortypemain.trxStatus:invalidcharacter'b'lookingforbeginningofvalueunexpectedendofJSONinput编码时。然后我将引号添加到编码字符串中:func(strxStatus)MarshalJSON()([]byte,error){return[]byte("\""+s.S

go - Struct Json Marshaling导致堆栈溢出

问题当我在我的代码中使用NewChild()函数并随后将“报告”结构编码为JSON时,我得到一个堆栈溢出(goroutine堆栈超过1000000000字节限制)经过研究我发现它应该做一些无限递归的事情,但我不知道为什么我的代码应该有那个。代码typeReportstruct{TestSuites[]ReportElementTestsintSuccessintFailedintRoot*ReportElementCurrentElement*ReportElement`json:"-"`}typeReportElementstruct{SuccessboolTimeboolLogSt