源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

关于go语言载入json可能遇到的一个坑

  • 时间:2022-07-17 13:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:关于go语言载入json可能遇到的一个坑
[b]问题简介[/b] Go语言是一个简单却蕴含深意的语言,大家都知道go语言标准库汇总内置了对 json 文件的处理,非常方便,最近在写一个应用的时候,需要从 json 文件中载入 配置,由于是 go 新手,忽略一个细节,导致载入内容始终为空,下面话不多说,需要的朋友们一起来看看详细的介绍: [b]代码演示[/b] 代码是最好的说明载体
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 的值是多少
}
[b]结论 [/b] 看到上面的代码,大家会觉着c 是否赋值成功了呢? 事实上,不成功, json 文件解析成功但是最终赋值失败 [b]原因其实非常简单:[/b] go 不同包中的变量 函数 方法访问,区分访问权限的就是 变量 函数 方法的首字母是否大写 如果是大写,可以在其他包被访问 这个问题中,json 包和 config 不是同一个包,访问失败,不能 set a b 必须改写为大写才可以赋值 [b]思考[/b] 之所以 config 中的 filed 设置为小写 是想做访问控制,如果坚持小写,如何给 config 的 field 赋值?知道的朋友们可以留言分享哦~ 好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部