關(guān)于go語(yǔ)言載入json可能遇到的一個(gè)坑
問(wèn)題簡(jiǎn)介
Go語(yǔ)言是一個(gè)簡(jiǎn)單卻蘊(yùn)含深意的語(yǔ)言,大家都知道go語(yǔ)言標(biāo)準(zhǔn)庫(kù)匯總內(nèi)置了對(duì) json 文件的處理,非常方便,最近在寫一個(gè)應(yīng)用的時(shí)候,需要從 json 文件中載入 配置,由于是 go 新手,忽略一個(gè)細(xì)節(jié),導(dǎo)致載入內(nèi)容始終為空,下面話不多說(shuō),需要的朋友們一起來(lái)看看詳細(xì)的介紹:
代碼演示
代碼是最好的說(shuō)明載體
package config type config struct{ a string `json:"a"` b string `json:"a"` } func Load(file string)(*config, error){ c = &config{} file, err := os.Open(file) if err != nil { //file open failed todo } jsonParser := json.NewDecoder(file) err = jsonParser.Decode(c) //c 的值是多少 }
結(jié)論
看到上面的代碼,大家會(huì)覺(jué)著c 是否賦值成功了呢?
事實(shí)上,不成功, json 文件解析成功但是最終賦值失敗
原因其實(shí)非常簡(jiǎn)單:
go 不同包中的變量 函數(shù) 方法訪問(wèn),區(qū)分訪問(wèn)權(quán)限的就是 變量 函數(shù) 方法的首字母是否大寫 如果是大寫,可以在其他包被訪問(wèn)
這個(gè)問(wèn)題中,json 包和 config 不是同一個(gè)包,訪問(wèn)失敗,不能 set
a b 必須改寫為大寫才可以賦值
思考
之所以 config 中的 filed 設(shè)置為小寫 是想做訪問(wèn)控制,如果堅(jiān)持小寫,如何給 config 的 field 賦值?知道的朋友們可以留言分享哦~
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Go語(yǔ)言中轉(zhuǎn)換JSON數(shù)據(jù)簡(jiǎn)單例子
- Go語(yǔ)言對(duì)JSON進(jìn)行編碼和解碼的方法
- 在Go語(yǔ)言程序中使用gojson來(lái)解析JSON格式文件
- 使用Go語(yǔ)言解析動(dòng)態(tài)JSON格式的方法
- go語(yǔ)言讀取json并下載高清妹子圖片
- 詳解Go語(yǔ)言RESTful JSON API創(chuàng)建
- Go語(yǔ)言的JSON處理詳解
- 在Go語(yǔ)言中使用JSON的方法
- Go語(yǔ)言結(jié)構(gòu)體定義和使用方法
- 淺談Go語(yǔ)言中的結(jié)構(gòu)體struct & 接口Interface & 反射
- Go語(yǔ)言指針訪問(wèn)結(jié)構(gòu)體的方法
- go語(yǔ)言使用第三方包 json化結(jié)構(gòu)體操作示例
相關(guān)文章
golang微服務(wù)框架基礎(chǔ)Gin基本路由使用詳解
這篇文章主要為大家介紹了golang微服務(wù)框架Gin基本路由的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11使用goland調(diào)試遠(yuǎn)程代碼的操作步驟
大家都知道如何在goland調(diào)試遠(yuǎn)程代碼嗎?今天小編給大家分享一篇教程幫助大家學(xué)習(xí)goland調(diào)試遠(yuǎn)程代碼的操作步驟,感興趣的朋友跟隨小編一起看看吧2021-06-06使用Golang編寫一個(gè)簡(jiǎn)單的命令行工具
Cobra是一個(gè)強(qiáng)大的開源工具,能夠幫助我們快速構(gòu)建出優(yōu)雅且功能豐富的命令行應(yīng)用,本文將利用Cobra編寫一個(gè)簡(jiǎn)單的命令行工具,感興趣的可以了解下2023-12-12Go實(shí)現(xiàn)跨平臺(tái)的藍(lán)牙聊天室示例詳解
這篇文章主要為大家介紹了Go實(shí)現(xiàn)跨平臺(tái)的藍(lán)牙聊天室示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Go語(yǔ)言實(shí)現(xiàn)JSON解析的神器詳解
php轉(zhuǎn)go是大趨勢(shì),越來(lái)越多公司的php服務(wù)都在用go進(jìn)行重構(gòu),重構(gòu)過(guò)程中,會(huì)發(fā)現(xiàn)php的json解析操作是真的香。本文和大家分享了一個(gè)Go語(yǔ)言實(shí)現(xiàn)JSON解析的神器,希望對(duì)大家有所幫助2023-01-01