草庐IT

UnMarshal

全部标签

json - Golang json.Unmarshal 字符串文字中的无效字符 '\n'

Golangjson.Unmarshal抛出换行符错误。GoPlayground如果字符串包含换行符,如何解码数据? 最佳答案 简单地转义换行符应该可以解决问题:varval[]byte=[]byte(`"{\"channel\":\"buupr\\niya\",\"name\":\"john\",\"msg\":\"doe\"}"`)上面的输出:{"channel":"buupr\niya","name":"john","msg":"doe"}由于您试图在此处传递原始字符串文字,因此您需要能够以字符串形式表示JSON,这需要您对换

GoYAML - 将字符串输入转换为 Unmarshal 上的类型

我有一个像这样为我的Yaml文件定义的结构:typeServicestruct{ServiceNamestring`yaml:"service_name"`PipelineTypePipelineType`yaml:"pipeline_type"`}在文件中,这个结构以字符串的形式出现:service_name:servicepipeline_type:app我的类型是这样定义的://PipelineTypePipelineTypestypePipelineTypestruct{Valuestring}var(AppPipeline=PipelineType{"app"}...)由于类

json - 使用 unmarshal 从响应中获取特定的 JSON 字段

我正在尝试使用他们的开放API获取特定Subreddit的热门提交列表:packagemainimport("encoding/json""fmt""io/ioutil""net/http""os")constapi_endpoint="http://www.reddit.com/r/%s/top.json?t=all&limit=100"funcmain(){//Getconsoleargument'subreddit'andformattheAPIendpointURL.subreddit:=os.Args[1]top_by_subreddit_endpoint:=fmt.Spri

json.Unmarshal 无法正常工作

我正在从本地主机读取一个json文档并尝试将其转换为Test类型:typeTeststruct{onestringtwostringthreestring}res,err:=http.Get("http://localhost/d/")perror(err)deferres.Body.Close()body,err:=ioutil.ReadAll(res.Body)perror(err)vardataTesterr=json.Unmarshal(body,&data)iferr!=nil{fmt.Printf("%T\n%s\n%#v\n",err,err,err)switchv:=e

go - 为什么 json.Marshal 和 json.Unmarshal 有不同的签名

funcMarshal(vinterface{})([]byte,error)funcUnmarshal(data[]byte,vinterface{})error注意Marshal接受一个接口(interface)并返回一个[]byte作为输出,而Unmarshal接受一个[]byte并将输出直接写入输入参数数据是什么让设计与众不同相关问题:我认为使用输入参数可以在内存中保存一次(函数返回需要一个副本),golang中的每个赋值都是一个复制操作,所以看起来Unmarshal可以保存一个副本,但Marshal不能。所以我很困惑...... 最佳答案

go - 尝试将 xml.Unmarshal 构造为类型为 map[string]interface{} 的字段时出错

问题是xml.Unmarshal的字段类型为map[string]interface{}的结构将失败并出现错误:unknowntypemap[string]interface{}{XMLName:{Space:Local:myStruct}Name:testMeta:map[]}由于类型为map[string]interface{}的Meta字段是我所能定义的,因此必须动态解码其中的内容。packagemainimport("encoding/xml""fmt")funcmain(){varmyStructMyStruct//metaisasfarasweknow,insidemeta

json - Go json.Unmarshal 字段大小写

我是Go的新手。我试图获取json数据并将其编码到结构中。我的示例数据如下所示:varreducedFieldData=[]byte(`[{"model":"Traverse","vin":"1gnkrhkd6ej111234"},{"model":"TL","vin":"19uua66265a041234"}]`)如果我这样定义接收数据的结构:typeVehiclestruct{ModelstringVinstring}对Unmarshal的调用按预期工作。但是,如果我对字段(“model”和“vin”)使用小写字母,而这些字段实际上与数据中字段名称的大小写匹配,它将返回值的空字符串

json - Go json.Unmarshal() 适用于单个实体但不适用于 slice

我将Go用于一个简单的http客户端。这是我正在解码的实体:typeMessagestruct{Idint64Timestampint64TextstringAuthorUserLastEditedint64}typeUserstruct{Idint64Namestring}单个实体在JSON中看起来像这样:{"text":"hello,canyouhearme?","timestamp":1512964818565,"author":{"name":"andrea","id":3},"lastEdited":null,"id":8}Go/json解码单个实体没有问题:varmMess

java - JAXB UnMarshal Collection 元素顺序 - 续

我知道之前已经问过几乎相同的问题(here)。尽管有一个有趣的答案,但仍有一个松散的结局(在解码的情况下)似乎也适用于我们的案例。这是我们的情况:我们正在解析SOAP消息,消息体的结构如下:到目前为止,我们假设的顺序将保留在解码过程产生的(Array)Lists中。元素然后被写入表并在PL/SQL过程中进一步处理。这通常对序列中元素的顺序不敏感。可能会想到SOAP消息中有两个引用同一对象的元素。这是一个错误。它被捕获在PL/SQL代码中,PL/SQL代码通过记录情况并拒绝第二个元素来处理它。我们现在的问题是,不是第二个元素(如SOAP消息中所见)被拒绝,而是第一个被拒绝,这种情况非常罕

带有 JAXB 类包装器的 Java Unmarshal 对象列表

我从BaseX服务器执行的XQuery中得到这样的结果:12014-06-23...我需要使用JAXB将此结果转换为Protocollo对象列表,以便我可以使用JList显示它们。因此,以下讨论之一here我已经声明了以下类:importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name="protocollo")publicclassProtocollo{privateintnumero;privateStringdata;pr