golang json处理struct未导出成员
来源:互联网 发布:access 导入excel sql 编辑:程序博客网 时间:2024/05/22 12:44
我们用golang的json来marshal一个结构体的时候,结构体的未导出的成员将无法被json访问,也就是不会出现json编码的结果里(也就是小写的成员没法导出)
这个是由于技术的上问题引起的:golang的结构体里的成员的名字如果以小写字母开头,那么其他的包是无法访问的,也就是json无法访问我们的结构体里小写字母开头的成员
这个可以有两种方法解决
1. struct的成员用大写开头,然后加tag
2. 实现json.Marshaler接口
第一种方法比较常见这儿就不详细展开了
第二种方法如下
http://play.golang.org/p/AiTwUOWkiT
package mainimport "fmt"import "encoding/json"func main() {var s Ss.a = 5s.b[0] = 3.123s.b[1] = 111.11s.b[2] = 1234.123s.c = "hello"s.d[0] = 0x55j, _ := json.Marshal(s)fmt.Println(string(j))}type S struct {a intb [4]float32c stringd [12]byte}func (this S) MarshalJSON() ([]byte, error) {return json.Marshal(map[string]interface{}{"a": this.a,"b": this.b,"c": this.c,"d": this.d,})}
输出:
{"a":5,"b":[3.123,111.11,1234.123,0],"c":"hello","d":[85,0,0,0,0,0,0,0,0,0,0,0]}
也就是结构体实现MarshalJSON() ([]byte, error)函数即可,在这个函数里导出你想要导出的成员就可以了。
这样就可以正常的使用json.Marshal之类的函数了
1 0
- golang json处理struct未导出成员
- [golang] struct转JSON,解析JSON
- golang 处理Json 数组
- golang json 处理
- golang json处理
- golang的JSON处理
- Golang 的json处理
- Golang中struct同时用于bson json
- Golang:使用reflect探究struct成员方法接收者指针
- golang struct
- golang中struct转json后键名首字母大小写问题解决
- golang API json,struct结构中标签(Tag)的使用
- Node实现csv转json(json文件未导出)
- golang通过反射使用json字符串调用struct的指定方法及返回json结果
- Golang Json
- golang json
- golang struct 面向对象
- golang struct to map
- 好资源
- jQuery学习笔记之七-----表单选择器
- 中小企业,怎么接近MES
- 没人教的项目管理方法
- vim的使用教程
- golang json处理struct未导出成员
- 杨毅:不够优秀就不要腆着脸继续占便宜
- bbpress 搜索
- htm .html .shtml 的区别
- 最后的净土:wps office已经沦陷——————【Badboy】
- LeetCode Solutions : Sqrt(x)
- User client windows logon basic data
- poj 1961 Period(数据结构:KMP)
- 【OpenGL 学习笔记04】顶点数组