大佬教程收集整理的这篇文章主要介绍了golang如何将json解码为结构体,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我究竟做错了什么 ?
我只需要MX记录,所以我没有定义其他字段.据我所知,你不需要定义你不使用/不需要的字段.
// You can edit this code! // Click here and start typing. package main import "fmt" import "encoding/json" func main() { body := ` {"response": { "status": "succesS","data": { "mxRecords": [ { "value": "us2.mx3.mailhostBox.com.","ttl": 1,"priority": 100,"hostName": "@" },{ "value": "us2.mx1.mailhostBox.com.",{ "value": "us2.mx2.mailhostBox.com.","hostName": "@" } ],"cnameRecords": [ { "aliasHost": "pop.a.co.uk.","canonicalHost": "us2.pop.mailhostBox.com." },{ "aliasHost": "webmail.a.co.uk.","canonicalHost": "us2.webmail.mailhostBox.com." },{ "aliasHost": "smtp.a.co.uk.","canonicalHost": "us2.smtp.mailhostBox.com." },{ "aliasHost": "imap.a.co.uk.","canonicalHost": "us2.imap.mailhostBox.com." } ],"dkimTxtRecord": { "domainname": "20a19._domainkey.a.co.uk","value": "\"v=DKIM1; g=*; k=rsa; p=DkfbhO8Oyy0E1WyUWwIDAQAB\"","ttl": 1 },"spfTxtRecord": { "domainname": "a.co.uk","value": "\"v=spf1 redirect=_spf.mailhostBox.com\"","loginUrl": "us2.cp.mailhostBox.com" } }}` type MxRecords struct { value String ttl int priority int hostName String } type Data struct { mxRecords []MxRecords } type Response struct { Status String `json:"status"` Data Data `json:"data"` } type apiR struct { Response Response } var r apiR err := json.Unmarshal([]byte(body),&r) if err != nil { fmt.Printf("err was %v",err) } fmt.Printf("decoded is %v",r) }
如果您的json不遵循名称的go约定,则可以在字段中使用json标记来更改json键和struct字段之间的匹配.
package main import ( "fmt" "encoding/json" ) type T struct { Foo String `json:"foo"` } func main() { text := []byte(`{"foo":"bar"}`) var t T err := json.Unmarshal(text,&t) if err != nil { panic(err) } fmt.Println(t) }
以上是大佬教程为你收集整理的golang如何将json解码为结构体全部内容,希望文章能够帮你解决golang如何将json解码为结构体所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。