精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 語言怎么處理三方接口返回數據?

開發 前端
本文我們主要介紹怎么處理三方接口返回數據,其中包含普通 json 和嵌套 json,在處理嵌套 json 的內容中,我們介紹了三方庫 mapstructure 的簡單使用方式。

?1.介紹

在使用 Go 語言調用三方RESTful接口時,因為無法直接操作 json 字符串,所以我們需要先將 json 字符串轉換為 map 或 struct。

本文我們介紹一下怎么處理三方接口返回數據。

2.普通 json

我們先看一下三方接口返回的普通 json。

func main() {
// 三方返回普通 json 字符串
jsonRes := `{
"Id": 1001,
"Name": "frank"
}`
data := new(User)
err := json.Unmarshal([]byte(jsonRes), &data)
if err != nil {
log.Printf("json Unmarshal err:%v\n", err)
return
}
fmt.Printf("data=%+v", data)
}

type User struct {
Id int
Name string
}

輸出結果:

data=&{Id:1001 Name:frank}

閱讀上面這段代碼,我們構造一個簡單的 json 字符串,模擬三方接口返回數據。

我們使用 Go 標準庫 encoding/json? 的 Unmarshal 函數,可以很容易將 json 數據解碼到 struct,從而方便我們讀取返回數據。

但是,需要讀者朋友們注意的是,假如三方接口返回數據的字段類型隨機變化(比如示例中的 Id? 字段,可能是整型或字符串隨機返回),我們使用 Unmarshal 函數解碼時,就有可能會返回錯誤,如下所示:

2022/08/15 14:07:41 json Unmarshal err:json: cannot unmarshal string into Go struct field User.Id of type int

閱讀到這里,我相信已經有讀者朋友們想到,可以把返回數據解碼到 map[string]interface{} 類型的變量中。

示例代碼:

func main() {
// 三方返回普通 json 字符串
jsonRes := `{
"Id": 1001,
"Name": "frank"
}`
data2 := make(map[string]interface{})
err := json.Unmarshal([]byte(jsonRes), &data2)
if err != nil {
log.Printf("json Unmarshal err:%v\n", err)
return
}
fmt.Printf("data2=%+v", data2)
}

輸出結果:

data2=map[Id:1001 Name:frank]

閱讀上面示例代碼,我們可以通過將返回數據解碼到 map[string]interface{} 類型的變量中,從而解決三方接口返回數據的字段類型不固定的問題。

普通 json 使用該方式處理確實可行,但是如果嵌套 json,也可以這么處理,但是讀取嵌套 json 的子字段就不那么方便了。

3.嵌套 json

我們再構造一個三方接口返回數據是嵌套 json 的變量。

func main() {
// 三方返回嵌套 json 字符串
jsonRes := `{
"Id": 1001,
"Name": "frank",
"Details": {
"Gender": "man",
"Age": 18,
"Phone": "13800138000",
"address": "Beijing"
}
}`
data := new(User)
err := json.Unmarshal([]byte(jsonRes), &data)
if err != nil {
log.Printf("json Unmarshal err:%v\n", err)
return
}
fmt.Printf("data=%+v", data)
}

type User struct {
Id int
Name string
Details Details
}

type Details struct {
Gender string
Age int
Phone string
Address string
}

輸出結果:

data=&{Id:1001 Name:frank Details:{Gender:man Age:18 Phone:13800138000 Address:Beijing}}

閱讀上面這段代碼,我們構造一個嵌套 json,使用 Unmarshal 函數解碼到 struct 中。

但是,如果返回數據中的 Age? 字段是字符串類型,我們使用 Unmarshal 函數解碼時,就會返回以下錯誤:

2022/08/15 17:33:08 json Unmarshal err:json: cannot unmarshal string into Go struct field Details.Details.Age of type int

雖然,我們可以使用普通 json 中的處理方式,將返回數據解碼到 map[string]interface{} 類型的變量中。但是,如果我們想要讀取內嵌 json 中的子字段,就讀取不到了。

怎么解決這個問題呢?我們可以借助三方庫 mapstructure?,使用該三方庫的 Decode? 函數替代 Go 標準庫 encoding/json? 的 Unmarshal 函數。

示例代碼:

func main() {
// 三方返回嵌套 json 字符串
jsonRes := `{
"Id": 1001,
"Name": "frank",
"Details": {
"Gender": "man",
"Age": "18",
"Phone": "13800138000",
"address": "Beijing"
}
}`
tmpData := make(map[string]interface{})
err := json.Unmarshal([]byte(jsonRes), &tmpData)
if err != nil {
log.Printf("json Unmarshal err:%v\n", err)
return
}
data2 := new(User)
err = mapstructure.Decode(tmpData, data2)
if err != nil {
log.Printf("decode err:%v\n", err)
return
}
fmt.Printf("data2=%+v\n", data2)
fmt.Printf("age=%v\n", data2.Details.Age)
}

type User struct {
Id int
Name string
Details Details
}

type Details struct {
Gender string
Age interface{}
Phone string
Address string
}

輸出結果:

data2=&{Id:1001 Name:frank Details:{Gender:man Age:18 Phone:13800138000 Address:Beijing}}
age=18

閱讀上面這段代碼,我們將嵌套 struct 的 Age? 字段定義為 interface{}? 類型,首先,我們使用 Go 標準庫的 Unmarshal? 函數將返回數據解碼到 map[string]interface{} 類型的變量中。

然后使用三方庫 mapstructure? 的 Decode? 函數,將 map[string]interface{} 類型的變量中的數據解碼到 struct 中,從而實現我們可以讀取內嵌 json 中的子字段。

三方庫 mapstructure 還有很多其他好用的功能,感興趣的讀者朋友們可以閱讀官方文檔了解更多內容。

4.總結

本文我們主要介紹怎么處理三方接口返回數據,其中包含普通 json 和嵌套 json,在處理嵌套 json 的內容中,我們介紹了三方庫 mapstructure 的簡單使用方式。

責任編輯:武曉燕 來源: Golang語言開發棧
相關推薦

2022-06-26 23:03:14

Go標準庫語言

2024-07-30 09:35:00

2025-01-06 00:00:01

KratosGo微服務

2013-11-25 13:41:48

2016-10-21 14:09:10

2025-03-04 10:00:00

架構接口k開發

2015-11-05 16:44:37

第三方登陸android源碼

2014-04-08 15:16:00

2021-10-11 06:38:52

Go開源庫語言

2010-03-15 19:02:25

Java編程語言

2023-02-07 15:43:13

三方庫適配鴻蒙

2024-05-15 17:05:16

GoLangflagcast

2023-09-14 10:55:16

2011-04-21 15:40:52

微軟漏洞報告

2023-07-26 08:21:33

2024-01-09 07:27:09

Go語言代碼

2023-03-22 09:09:21

鴻蒙Speexdsp

2023-09-05 15:34:22

三方包鴻蒙

2019-07-30 11:35:54

AndroidRetrofit

2014-07-23 08:55:42

iOSFMDB
點贊
收藏

51CTO技術棧公眾號

亚洲欧美日韩图片| 久久精品一区二区三区不卡牛牛| 不卡av在线播放| 国产婷婷在线观看| av高清一区| 亚洲精品久久久蜜桃| 久久精品二区| 欧美夫妻性视频| 可以免费看的黄色网址| 色婷婷av一区二区三| 全部av―极品视觉盛宴亚洲| 欧美夫妻性视频| 久久精品无码一区| 亚洲精品观看| 欧美日韩国产系列| 免费无遮挡无码永久视频| h视频在线免费| 成人午夜短视频| 国产精品天天狠天天看| 日本三级一区二区| 欧美日韩mv| 这里只有精品久久| 色婷婷av777| a级日韩大片| 欧美精选在线播放| 日本在线观看a| www在线看| 亚洲伦理在线精品| 亚洲图片都市激情| 免费福利在线观看| 99久久综合99久久综合网站| 69174成人网| 国产精品天天操| 日本v片在线高清不卡在线观看| 91超碰中文字幕久久精品| 人妻久久一区二区| 97在线精品| 色综久久综合桃花网| 亚洲最大成人网站| 亚洲午夜久久| 日韩精品在线观| 欧类av怡春院| 久久97久久97精品免视看秋霞| 日韩三区在线观看| 2025中文字幕| 91精品丝袜国产高跟在线| 91精品国产综合久久婷婷香蕉 | 成人免费视频网站入口::| 91吃瓜在线观看| 一级女性全黄久久生活片免费| 亚洲在线欧美| 日韩黄色影院| 成人免费小视频| 艳母动漫在线免费观看| 免费在线午夜视频| 亚洲日本青草视频在线怡红院| 婷婷亚洲婷婷综合色香五月| av小片在线| 国产精品色一区二区三区| 亚洲人成网站在线播放2019| 在线a免费看| 国产精品你懂的在线欣赏| 亚洲一区免费看| 日本在线观看视频| 亚洲美女视频在线观看| 成人一级生活片| 黄色软件视频在线观看| 疯狂做受xxxx欧美肥白少妇| 无码人妻丰满熟妇区五十路百度| 中文字幕av一区二区三区佐山爱| 在线视频一区二区免费| 国产野外作爱视频播放| 国产精品视频一区二区三区| 日韩欧美不卡在线观看视频| 亚洲啪av永久无码精品放毛片 | 综合av在线| 日韩一区二区在线观看视频 | 亚洲欧洲一二区| 欧美一区二区三区成人| 性高潮免费视频| 免费观看久久av| 日韩在线播放av| 久久久久人妻一区精品色欧美| 亚洲乱码久久| 国产日韩欧美视频| 三级网站在线看| 国产欧美日韩不卡免费| 天堂av在线中文| 中文在线最新版地址| 欧美三级中文字| 少妇熟女视频一区二区三区| 美女久久久久| 另类天堂视频在线观看| 中日韩黄色大片| 激情五月播播久久久精品| 国产亚洲自拍偷拍| 98在线视频| 亚洲国产wwwccc36天堂| 宅男噜噜噜66国产免费观看| 日韩在线亚洲| 亚洲视频777| 国产在线视频你懂的| 日韩精品福利网| 国产精品视频入口| 午夜免费播放观看在线视频| 亚洲高清免费视频| 91视频这里只有精品| 欧美xxxx在线| 欧美另类极品videosbest最新版本| 美媛馆国产精品一区二区| 亚洲国产综合av| 日韩激情毛片| 九九热r在线视频精品| 日本中文字幕在线观看视频| 国产成人a级片| 亚洲在线不卡| 视频在线日韩| 亚洲精品www久久久久久广东| 国产探花视频在线| 99香蕉国产精品偷在线观看| 51国产成人精品午夜福中文下载| h视频在线播放| 色综合天天综合网国产成人综合天 | 国产情侣久久| 99久久综合狠狠综合久久止| 欧美jizzhd欧美| 欧美色区777第一页| 波多野结衣福利| 亚洲精品孕妇| 国产一区不卡在线观看| 欧美女同一区| 日韩一区二区不卡| avtt天堂在线| 国产一区二区三区日韩| 国产高清免费在线| 日韩色性视频| 日韩中文字幕精品视频| 亚洲视频中文字幕在线观看| 日本一区二区不卡视频| 91色国产在线| 成人黄色av| 国产精品久久久久久久久久久久久| 日韩欧美在线观看一区二区| 精品国产乱码久久久久久天美| 97人妻精品一区二区三区免费| 好吊日精品视频| 国产精品永久入口久久久| 2020国产在线视频| 欧美成人在线直播| 久久精品国产亚洲av麻豆色欲| 国产成人免费视频网站| 欧美日韩中文字幕在线播放| 亚洲 自拍 另类 欧美 丝袜| 日日夜夜亚洲精品| 日韩综合视频在线观看| 一级特黄aaa| 亚洲美女一区二区三区| 黑森林av导航| 夜夜夜久久久| 欧美一二三区| 久久人体av| 麻豆乱码国产一区二区三区 | 韩国成人精品a∨在线观看| 中文字幕日韩精品久久| 日本精品在线观看| 亚州成人av在线| 欧美日韩视频精品二区| 欧美丝袜第三区| 日本午夜在线观看| 成人免费av资源| 六月激情综合网| 久久精品国产68国产精品亚洲| 91视频88av| 91美女主播在线视频| 亚洲一区二区久久久| 国产剧情精品在线| 亚洲1区2区3区视频| 国产人妻大战黑人20p| 久久99国产精品免费| 欧美中日韩在线| 国产亚洲一区二区三区啪| 国产精品亚洲网站| 亚洲丝袜精品| 亚洲图片在区色| 99久久夜色精品国产亚洲| 天天操天天综合网| 久久精品一区二区三区四区五区 | 日韩成人免费电影| 国产成人亚洲综合a∨婷婷| 日韩在线国产| 在线精品视频一区| 欧美制服第一页| 黄在线免费看| 亚洲免费av网址| 国产日产亚洲系列最新| 岛国av一区二区三区| 午夜三级在线观看| 久久久久国色av免费看影院| 古装做爰无遮挡三级聊斋艳谭| 欧美一级一区| 久久精品在线免费视频| 国产成人ay| 国产精品一区视频| 精品一区二区三区中文字幕视频| 欧美在线一级va免费观看| 制服丝袜在线播放| 色偷偷偷综合中文字幕;dd| 色呦呦免费观看| 91精品中文字幕一区二区三区| 一级片中文字幕| 亚洲精品免费播放| 欧美自拍偷拍网| 久久伊人蜜桃av一区二区| 亚洲欧美日韩中文字幕在线观看| 秋霞电影网一区二区| 日韩av片在线看| 在线精品一区| 成人av在线播放观看| 久久免费精品视频在这里| 精品一卡二卡三卡四卡日本乱码| 日韩高清在线观看一区二区| 国产精品视频网站| 日韩高清成人| 日本道色综合久久影院| 高清视频在线观看三级| 欧美黑人视频一区| 黄在线免费观看| 中文字幕在线观看日韩| 成全电影播放在线观看国语| 日韩毛片在线看| 日批视频免费播放| 亚洲成人免费在线视频| 亚洲不卡免费视频| 91精品国产一区二区| 91亚洲视频在线观看| 欧美男人的天堂一二区| 曰批又黄又爽免费视频| 欧洲精品一区二区三区在线观看| 成人在线免费看视频| 偷拍一区二区三区四区| 精品91久久久| 欧美日韩国产一区中文午夜| 五月婷婷开心网| 色欲综合视频天天天| 国产免费一级视频| 在线观看成人小视频| 国产乡下妇女三片| 欧美日韩精品电影| 一级特黄aaa| 日韩一区二区三区免费看| 国内老熟妇对白hdxxxx| 日韩女优av电影在线观看| 性中国古装videossex| 精品人伦一区二区色婷婷| 国模无码一区二区三区| 亚洲精品美女在线| 国产私人尤物无码不卡| 中文字幕国产亚洲2019| 超碰个人在线| 国内揄拍国内精品少妇国语| 日本三级一区| 国产精品久久一| 国产一区一区| 国产精品伊人日日| 国产精品一区二区av日韩在线| 色播亚洲视频在线观看| 99国产精品一区二区| 激情六月天婷婷| 国产精品美女久久久| 日本熟妇人妻中出| 国产真实乱对白精彩久久| 久久久久久久久久影视| 91免费观看视频| 青青青视频在线免费观看| 一区二区免费在线播放| 亚洲欧美精品一区二区三区| 欧美日韩色综合| 性欧美8khd高清极品| 国产视频久久网| 亚洲成人影院麻豆| 国语自产精品视频在线看一大j8| 桃子视频成人app| 91亚洲精品在线观看| 日韩高清成人在线| 曰韩不卡视频| 国产视频一区三区| 玖玖爱视频在线| 99久久99久久免费精品蜜臀| 中文字幕精品亚洲| 性欧美大战久久久久久久久| 在线播放一级片| 亚洲国产欧美一区二区三区久久| www免费网站在线观看| 国内精品久久久久影院优| 国产a亚洲精品| 九九九九精品| 一区二区影视| 男女视频一区二区三区| 国产mv日韩mv欧美| 欧美自拍偷拍网| 日韩欧美成人区| 亚洲第一视频在线| 色噜噜狠狠狠综合曰曰曰88av| 18aaaa精品欧美大片h| 国产精品露脸av在线| 日本久久成人网| 亚洲国产一二三精品无码| 日本午夜精品一区二区三区电影| 亚洲午夜久久久久久久久| 中文字幕制服丝袜一区二区三区| 欧美亚洲精品天堂| 亚洲成avwww人| 中文字幕在线三区| 国产日韩欧美自拍| 国产精品一在线观看| 1024av视频| 国产成人av福利| 国产精品国产三级国产传播| 91久久久免费一区二区| 无码国精品一区二区免费蜜桃| 欧美成人精品在线播放| 日本一区二区中文字幕| 清纯唯美一区二区三区| 亚洲综合三区| 黄色免费看视频| 亚洲国产sm捆绑调教视频| 精品人妻一区二区三区日产乱码| 色哟哟入口国产精品| 你懂得影院夜精品a| 欧美日韩电影一区二区| 国产亚洲综合精品| 国产精品手机在线观看| 亚洲国产欧美一区二区三区丁香婷| 99精品在线看| 久久久久北条麻妃免费看| 日本在线一区二区| 一区二区在线高清视频| 喷水一区二区三区| 99久久99久久精品免费看小说.| 色狠狠av一区二区三区| 高h视频在线| 国产精品久久久久久久一区探花| 精品国产精品久久一区免费式| caopor在线视频| 国产午夜精品理论片a级大结局| 国语对白永久免费| 亚洲人成电影网站色xx| 深夜成人影院| 亚洲第一导航| 韩国毛片一区二区三区| 三级影片在线看| 亚洲精品一区二区精华| av在线中出| 欧美日韩精品中文字幕一区二区| 美女爽到呻吟久久久久| 亚洲最大成人综合网| 欧美四级电影网| 欧洲不卡av| 91麻豆精品秘密入口| 激情亚洲网站| 欧美图片一区二区| 欧美日韩中文字幕一区二区| 日本高清在线观看wwwww色| 欧美性色黄大片手机版| 99re久久精品国产| 亚洲aⅴ怡春院| 国产日本在线| 国产欧美精品一区二区| 亚洲欧美一区在线| 伦理片一区二区| 欧洲一区在线观看| 黄色动漫在线| 国产精品裸体一区二区三区| 欧美一级专区| 我要看一级黄色录像| 欧美精品一区二| 日本.亚洲电影| 国产经典久久久| www久久久久| 国产三级自拍视频| 97色在线观看| 图片小说视频色综合| 丰满岳乱妇一区二区| 欧美性三三影院| 色帝国亚洲欧美在线| 久久视频在线观看中文字幕| 久久精品国产精品亚洲综合| 久久婷婷一区二区| 一区二区福利视频| 51精品国产| 小泽玛利亚视频在线观看| 一区二区三区视频在线观看| 欧美女子与性| 99超碰麻豆| 麻豆精品视频在线观看视频| 日本特黄特色aaa大片免费| 最近2019中文字幕大全第二页| 成人偷拍自拍| 一区二区三区视频在线观看免费| 亚洲国产综合在线|