草庐IT

Unmarshalling

全部标签

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

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

xml - 将 XML 解码为嵌入式结构

我有一个平面XML结构,我想将其解码为一个嵌入了一部分的结构。这可能吗?语法是什么,或者我可以编写什么自定义方法?在这个例子中,我用一个猜测来标记嵌套结构:xml:"",它被“encoding/xml”跳过。typeFloatHolderstruct{Valuefloat32`xml:"value"`}typepvstruct{XMLNamexml.Name`xml:"series"`Test1FloatHolder`xml:""`//doesnotpopulate:-(Test2FloatHolder`xml:"nested"`//populates}funcmain(){conte

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 - 在golang中解析变量中的Json

我如何解析这个json[[["Odioloslunes","ihatemondays",null,null,1]],null,"en"]只显示Odioloslunes? 最佳答案 实现unmarshalar以从嵌套数组中获取所需的值并将其解析为并使用unmarshal进行结构化,例如:packagemainimport("fmt""encoding/json")func(item*Result)UnmarshalJSON(data[]byte)error{varv[]interface{}iferr:=json.Unmarshal(

json - 如何将 JSON 解码为接口(interface)数组并使用

我很难理解如何正确解码一些进入接口(interface)类型数组然后使用它的JSON数据。我试图使这个示例代码尽可能简单,以说明我遇到的问题。代码可以在Playground上找到:https://play.golang.org/p/U85J_lBJ7Zr输出如下:[map[ObjectType:chairID:1234Brand:BlueInc.]map[ID:5678Location:KitchenObjectType:table]]{}false{}false代码packagemainimport("fmt""encoding/json")typeChairstruct{Objec

go - 在解码字段的 JSON 内容时打印结构字段标签?

在Go中,是否可以在我将JSON内容解码到结构字段时从结构字段中获取标签?这是我失败的尝试:packagemainimport("log""encoding/json")typePersonstruct{ProfileNameAltField`json:"profile_name"`}typeAltFieldstruct{Valstring}func(af*AltField)UnmarshalJSON(b[]byte)error{log.Println("Showtags")//log.Println(af.Tag)//Iwanttosee`json:"profile_name"`if

json - 为什么不能将此数据正确解码到我的对象模型中?

我这里有一个(非)工作示例:https://play.golang.org/p/qaYhKvJ65J3我不确定为什么会出现以下数据:alertData:=`{"Id":0,"Version":0,"OrgId":1,"DashboardId":61,"PanelId":84,"Name":"{qa-dev}{stats-pipeline}TopologyMessageAge(aggregator)alert","Message":"","Severity":"","State":"","Handler":1,"Silenced":false,"ExecutionError":"","F

json - 嵌套结构的解码字段不起作用

给定以下结构typeFoostruct{Thingtime.Duration`json:"thing"`}typeBarstruct{FooEntrytime.Duration`json:"entry"`}我想自定义time.Duration格式并从json字符串加载Bar值,例如:{"thing":"hour","entry":"second"}所以我为Foo和Bar(https://play.golang.org/p/6v71eG_Xr98)覆盖了UnmarshalJSON:packagemainimport("encoding/json""fmt""time")typeFoost

json - 在解码之前从 json 之类的字符串中去除无效 json 字符的最佳方法

为了提供一些背景知识,我正在使用adblogcat和idevicesyslog从android和ios设备读取设备日志。我所关注的具体日志是通过adblogcat/idevicesyslog将swift/c#/java/etc字典转换为字符串。我希望获取这些包含类似字符串的JSON的日志,并将它们转换为有效的JSON。这在大多数情况下都没有问题。但是,有时这些日志/字符串输出包含(\134、\M、\t等)等字符,在解码为JSON时会导致问题。我将它们解码为JSON以将它们发送到其他地方。例如,原始设备日志可能包含如下内容:{"foo":"bar","foo":"bar\134/\134

go - json 字符串不会用 json api.Unmarshal Payload 解码

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3个月前。Improvethisquestion我正在尝试解码一个简单的jason字符串:typeCitystruct{IDint`jsonapi:"primary,cities"`CountryCodestring`jsonapi:"attr,countryCode"`Namestring`jsonapi:"attr,name"`}funcT