关于go语言载入json可能遇到的一个坑
问题简介
Go语言是一个简单却蕴含深意的语言,大家都知道go语言标准库汇总内置了对 json 文件的处理,非常方便,最近在写一个应用的时候,需要从 json 文件中载入 配置,由于是 go 新手,忽略一个细节,导致载入内容始终为空,下面话不多说,需要的朋友们一起来看看详细的介绍:
代码演示
代码是最好的说明载体
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 的值是多少 }
结论
看到上面的代码,大家会觉着c 是否赋值成功了呢?
事实上,不成功, json 文件解析成功但是最终赋值失败
原因其实非常简单:
go 不同包中的变量 函数 方法访问,区分访问权限的就是 变量 函数 方法的首字母是否大写 如果是大写,可以在其他包被访问
这个问题中,json 包和 config 不是同一个包,访问失败,不能 set
a b 必须改写为大写才可以赋值
思考
之所以 config 中的 filed 设置为小写 是想做访问控制,如果坚持小写,如何给 config 的 field 赋值?知道的朋友们可以留言分享哦~
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
利用Golang解析json数据的方法示例
本文主要给大家介绍的是关于Golang解析json数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 使用 Golang 解析 json 数据,这种 json 格式是对象的数组,官方文档有一个示例: var jsonBlob = []byte(`[ {"Name": "Platypus", "Order": "Monotremata"}, {"Name": "Quoll
-
Go语言中转换JSON数据简单例子
Go语言转换JSON数据真是非常的简单. 以EasyUI的Demo为例,将/demo/datagrid/datagrid_data1.json 拷贝到$GOPATH/src目录: JSON.go: 复制代码 代码如下: package main import ( "encoding/json" "fmt" "io/ioutil" ) type product struct { Pro
-
Django返回json数据用法示例
本文实例讲述了Django返回json数据用法.分享给大家供大家参考,具体如下: 1.前端.jQuery发送GET请求,并解析json数据.getJSON方法可参考这里. url = "http://example/?question=" + question + "&rand=" + Math.random(); $.getJSON(url, function(json){ answer = json.answer; alert(answer); });
-
django通过ajax发起请求返回JSON格式数据的方法
本文实例讲述了django通过ajax发起请求返回JSON格式数据的方法.分享给大家供大家参考.具体实现方法如下: 这是后台处理的: def checkemail(request): user = None if request.POST.has_key('email'): useremail = request.POST['email'] result = {} user = User.objects.filter(useremail__iexact = useremail) if user:
-
go语言读取json并下载高清妹子图片
学了一天golang,一边看文档一边写的go读取分析json并下载图片 json api为爱壁纸HD mac 1920x1200版本,高清妹子图 总结:go+json=shit package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "path/filepath" "strconv" //"e
-
Golang中使用JSON的一些小技巧分享
前言 有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用. 本来用一个json:",string" 就可以支持了,如果不知道golang的这些小技巧,就要大费周章了. 参考文章: JSON and struct composition in Go 临时忽略struct字段 type User struct { Email string `json:"email"` Password string `json:"password&qu
-
Go语言对JSON进行编码和解码的方法
本文实例讲述了Go语言对JSON进行编码和解码的方法.分享给大家供大家参考.具体如下: json已成为不同平台间传送数据的最佳方式,Golang对json的支持非常好,代码如下: 复制代码 代码如下: package main import ( "fmt" "encoding/json" ) func main() { // json encode j1 := make(map[string]interface{}) j1[&
-
python读取json文件并将数据插入到mongodb的方法
本文实例讲述了python读取json文件并将数据插入到mongodb的方法.分享给大家供大家参考.具体实现方法如下: #coding=utf-8 import sunburnt import urllib from pymongo import Connection from bson.objectid import ObjectId import logging from datetime import datetime import json from time import mktime
-
在Go语言程序中使用gojson来解析JSON格式文件
gojson是快速解析json数据的一个golang包,你使用它可以快速的查找json内的数据 安装 go get github.com/widuu/gojson 使用简介 结构 复制代码 代码如下: type Js struct { data interface{} } (1) func Json(data) *Js data为string类型,初始化Js结构,解析json并且return Js.data 复制代码 代码如下: json := `{"from":"e
-
关于go语言载入json可能遇到的一个坑
问题简介 Go语言是一个简单却蕴含深意的语言,大家都知道go语言标准库汇总内置了对 json 文件的处理,非常方便,最近在写一个应用的时候,需要从 json 文件中载入 配置,由于是 go 新手,忽略一个细节,导致载入内容始终为空,下面话不多说,需要的朋友们一起来看看详细的介绍: 代码演示 代码是最好的说明载体 package config type config struct{ a string `json:"a"` b string `json:"a"` } f
-
实例操作易语言载入窗口
使用易语言载入窗口 1.打开您的易语言,选择"Windows 窗口程序" 2.设计好您的程序后 3.点击这里,插入-----窗口 4.这时候就会出现一个新的窗口 默认命名为"窗口一" 5.同样设计好它 6.现在我们要做的就是通过点击这个按钮来来载入"窗口一" 7.双击它.就会进入如图所示的代码编辑区 这里 按钮一被单击 的意思就是下面这行代码的执行条件就是 按钮一被单击 8.很简单的一行代码就能实现窗口的载入. 如图所示 载入(窗口1,
-
Go语言的JSON处理详解
Go语言内建对JSON的支持.使用Go语言内置的encoding/json标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据.在Go语言实现JSON的编码和解码时,遵循RFC4627协议标准. 1.编码为JSON格式 使用json.Marshal()函数可以对一组数据进行JSON格式的编码.json.Marshal()函数的声明如下: 假如有如下一个Book类型的结构体: 并且有如下一个Book类型的实例对象: 然后,我们可以使用json.Marshal()函数将gobook实例生成
-
详解Go语言RESTful JSON API创建
RESTful API在Web项目开发中广泛使用,本文针对Go语言如何一步步实现RESTful JSON API进行讲解, 另外也会涉及到RESTful设计方面的话题. 也许我们之前有使用过各种各样的API, 当我们遇到设计很糟糕的API的时候,简直感觉崩溃至极.希望通过本文之后,能对设计良好的RESTful API有一个初步认识. JSON API是什么? JSON之前,很多网站都通过XML进行数据交换.如果在使用过XML之后,再接触JSON, 毫无疑问,你会觉得世界多么美好.这里不深入JSO
-
Go语言基础Json序列化反序列化及文件读写示例详解
目录 概述 JSON序列化 结构体转JSON map转JSON 切片转JSON JSON反序列化 JSON转map JSON转结构体 JSON转切片 写JSON文件 map写入JSON文件 切片写入JSON文件 结构体写入JSON文件 读JSON文件 解码JSON文件为map 解码JSON文件为切片 解码JSON文件为结构体 示例 概述 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的.键值对的数据交换格式.结构由大括号'{}',中括
-
JS中Eval解析JSON字符串的一个小问题
之前写过一篇 关于 JSON 的介绍文章,里面谈到了 JSON 的解析.我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用eval() 函数. JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包. JSON的规则很简单:
-
Python判断是否json是否包含一个key的方法
如下所示: jsonObject 是个json if (key in jsonObject) : print '有' else: print '没有' 以上这篇Python判断是否json是否包含一个key的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
go语言开发环境安装及第一个go程序(推荐)
Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 下载Go语言开发包 大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示. 安装Go语言开发包 双击我们下载好的Go语言开发包即可启动安装程序,如下图所示,这是Go语言的用户许可协议,无需管它,直接勾选"I accept ..."然后点击"Next"即可. Go语言开发包的安
-
R语言处理JSON文件的方法
JSON文件以人类可读格式将数据存储为文本. Json代表JavaScript Object Notation. R可以使用rjson包读取JSON文件. 安装rjson包 在R语言控制台中,您可以发出以下命令来安装rjson包. install.packages("rjson") 输入数据 通过将以下数据复制到文本编辑器(如记事本)中来创建JSON文件. 使用.json扩展名保存文件,并将文件类型选择为所有文件(*.*). { "ID":["1"
随机推荐
- 学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
- layer弹出层中H5播放器全屏出错的解决方法
- 解析c#操作excel后关闭excel.exe的方法
- 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
- iOS 指纹解锁验证TouchID功能
- SqlCommandBuilder如何实现批量更新
- php 中的str_replace 函数总结
- A09_Spinner(下拉列表)自定义设置
- Docker容器 日志中文乱码问题解决办法
- JavaScript中的方法重载实例
- simplehtmldom Doc api帮助文档
- firefox下rowspan+border+border-collapse的bug
- js实现拖拽上传图片功能
- ComboBox(下拉列表框)通过url加载调用远程数据的方法
- JavaScript省市区三级联动菜单效果
- jQuery右侧选项卡焦点图片轮播特效代码分享
- jQuery实现二维码扫描功能
- 使用JavaScript开发跨平台的桌面应用详解
- javascript实现的登陆遮罩效果汇总
- Android自定义控件案例汇总2(自定义开关、下拉刷新、侧滑菜单)