go语言中的json
结构体类型转化为json格式
package main import ( "encoding/json" "fmt" ) //如果要转化成json格式,那么成员变量名的首字母必须要大写 type Girl struct { Name string Age int gender byte //故意不大写 } func main(){ girl := Girl{"satori", 18, 'f'} buf, err:=json.Marshal(girl) if err != nil{ fmt.Println(err) } fmt.Println(string(buf)) //{"Name":"satori","Age":18} //还有一个格式化输出 buf1,_ := json.MarshalIndent(girl, "", " ") fmt.Println(string(buf1)) /* { "Name": "satori", "Age": 18 } */ }
package main import ( "encoding/json" "fmt" ) //如果要转化成json格式,那么成员变量名的首字母必须要大写 //但是也可以转成小写 type Girl struct { Name string `json:"name"` Age int `json:"age"` Anime string `json:"-"` //"-"表示不会输出到屏幕 Loveme bool `json:",string"`//",string"表示转化成字符串输出 gender byte //因为只有大写才可以转成json,那么我们这里是小写,既然转不成json,那么也就不支持`json:"xxx"`这种结构了 } func main(){ girl := Girl{"satori", 18, "东方地灵殿",true,'f'} buf,_:=json.Marshal(girl) fmt.Println(string(buf))//{"name":"satori","age":18,"Loveme":"true"} }
map类型转化为json格式
package main import ( "encoding/json" "fmt" ) func main(){ m:=make(map[string]interface{}) m["name"]="satori" m["age"]=18 m["gender"]='f' m["anime"]="东方地灵殿" buf,_ := json.MarshalIndent(m,""," ") fmt.Println(string(buf)) /* { "age": 18, "anime": "东方地灵殿", "gender": 102, "name": "satori" } */ }
json转化为结构体
package main import ( "encoding/json" "fmt" ) type GGirl struct { Name string `json:"name"` Age int `json:"age"` Anime string `json:"anime"` Loveme bool `json:"loveme"` } func main(){ var girl GGirl jsonBuf:=`{ "name":"satori", "age": 18, "anime": "东方地灵殿", "loveme":true }` err := json.Unmarshal([]byte(jsonBuf),&girl) if err!=nil{ fmt.Println("err=", err) return } fmt.Println(girl)//{satori 18 东方地灵殿 true} }
package main import ( "encoding/json" "fmt" ) //如果结构体的成员不够 type GGirl struct { Name string `json:"name"` } func main(){ var girl GGirl jsonBuf:=`{ "name":"satori", "age": 18, "anime": "东方地灵殿", "loveme":true }` err := json.Unmarshal([]byte(jsonBuf),&girl) if err!=nil{ fmt.Println("err=", err) return } //成员不够,会解析一部分 fmt.Println(girl)//{satori} }
json转化为map
package main import ( "encoding/json" "fmt" ) func main(){ jsonBuf :=`{ "name":"satori", "age":18, "gender":"f", "anime":"东方地灵殿" }` m:=make(map[string]interface{}) //取地址,把jsonBuf传到m里面去 err:=json.Unmarshal([]byte(jsonBuf), &m) if err!=nil{ fmt.Println("err=",err) return } fmt.Println(m)//map[name:satori age:18 gender:f anime:东方地灵殿] }
go语言中的json的更多相关文章
- JS语言中的JSON.parse()和JSON.stringify()
parse()用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":& ...
- C语言中,头文件和源文件的关系(转)
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...
- C 语言中 setjmp 和 longjmp
在 C 语言中,我们不能使用 goto 语句来跳转到另一个函数中的某个 label 处:但提供了两个函数——setjmp 和 longjmp来完成这种类型的分支跳转.后面我们会看到这两个函数在处理异常 ...
- c语言中的scanf在java中应该怎么表达,Scanner类。
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
- C语言中do...while(0)的妙用(转载)
转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...
- C语言中,定义的含义?声明的含义?它们之间的区别是什么?
在C语言中,对于定义和声明,也许我们非常的熟悉,但不一定真正的了解! 定义的含义:所谓定义,就是创建(编译器)一个对象,为这个对象分配一块内存空间并取名,也就是我们平常所说的变量名或对象名,一旦这个名 ...
- C++中函数的默认参数和C语言中volatile的学习
1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...
- C语言中qsort函数用法
C语言中qsort函数用法-示例分析 本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...
- c语言中time相关函数
工作中遇到的函数: int seed = time(NULL); srand(seed); signal(SIGINT, stop); signal(SIGUSR1, sig_usr1); 搜time ...
随机推荐
- python xlrd处理表格常用方法
1.导入模块import xlrd2.打开Excel文件读取数据data = xlrd.open_workbook('excelFile.xls')3.使用技巧获取一个工作表 table = data ...
- 核方法(Kernel Methods)
核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...
- 相关系数之杰卡德相似系数(Jaccardsimilarity coefficient)
杰卡德相似系数(Jaccardsimilarity coefficient) (1)杰卡德相似系数 两个集合A和B交集元素的个数在A.B并集中所占的比例,称为这两个集合的杰卡德系数,用符号 J(A,B ...
- 代码托管平台(Git)
1,可以说GitHub的出现完全颠覆了以往大家对代码托管网站的认识.GitHub不但是一个代码托管网站,更是一个程序员的SNS社区.GitHub真正 迷人的是它的创新能力与Geek精神,这些都是无法模 ...
- [剑指Offer] 23.二叉搜索树的后序遍历
[思路]BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两 ...
- bootstrap和bootstrap-select去除蓝色边框outline
/*bootstrap outline设置*/ .btn:focus, .btn:active:focus, .btn.active:focus, .btn.focus, .btn:active.fo ...
- 给DOM元素绑定click事件也有学问
最简单的莫过于使用click方法: 1 <input id="btn" type="button" value="BUTTON" on ...
- Working with large data sets in MySQL
What does working with large data sets in mySQL teach you ? Of course you have to learn a lot about ...
- APP本地服务安全测试
一.安全测试基本分类: 1.系统安全 系统加固 安全加固:比如linux中关闭telnet端口,修改ssh端口 检测一些不必要的服务(需要卸载一个ping)--保证系统的最小集 app安全加固:加一层 ...
- is
MyType a = null; if (a is MyType) == False