概述

结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。

声明结构体

//demo_11.go
package main import (
"fmt"
) type Person struct {
Name string
Age int
} func main() {
var p1 Person
p1.Name = "Tom"
p1.Age = 30
fmt.Println("p1 =", p1) var p2 = Person{Name:"Burke", Age:31}
fmt.Println("p2 =", p2) p3 := Person{Name:"Aaron", Age:32}
fmt.Println("p2 =", p3) //匿名结构体
p4 := struct {
Name string
Age int
} {Name:"匿名", Age:33}
fmt.Println("p4 =", p4)
}

运行结果:

生成 JSON

//demo_12.go
package main import (
"encoding/json"
"fmt"
) type Result struct {
Code int `json:"code"`
Message string `json:"msg"`
} func main() {
var res Result
res.Code = 200
res.Message = "success" //序列化
jsons, errs := json.Marshal(res)
if errs != nil {
fmt.Println("json marshal error:", errs)
}
fmt.Println("json data :", string(jsons)) //反序列化
var res2 Result
errs = json.Unmarshal(jsons, &res2)
if errs != nil {
fmt.Println("json unmarshal error:", errs)
}
fmt.Println("res2 :", res2)
}

运行结果:

改变数据

//demo_13.go
package main import (
"encoding/json"
"fmt"
) type Result struct {
Code int `json:"code"`
Message string `json:"msg"`
} func main() {
var res Result
res.Code = 200
res.Message = "success"
toJson(&res) setData(&res)
toJson(&res)
} func setData (res *Result) {
res.Code = 500
res.Message = "fail"
} func toJson (res *Result) {
jsons, errs := json.Marshal(res)
if errs != nil {
fmt.Println("json marshal error:", errs)
}
fmt.Println("json data :", string(jsons))
}

运行结果:

推荐阅读

本文欢迎转发,转发请注明作者和出处,谢谢!

最新文章

  1. canvas的简单圆形进度条
  2. 卸载Eclipse安装的插件
  3. js从身份证号中获取出生日期和性别
  4. 循序渐进Python3(四) -- 装饰器、迭代器和生成器
  5. Python全栈之路8--迭代器(iter)和生成器(yield)
  6. PDF在线预览
  7. 关于Weblogic 10.3.1集群及调优经历
  8. [转] JSON for java入门总结
  9. 记一次C++与lua连接
  10. Protel99se教程一:建立一个数据库文件
  11. JS对象或属性的不变性
  12. Docker容器中安装vim
  13. 【Deep Hash】CNNH
  14. 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)
  15. html5 datalist
  16. [转]Magento Configurable Product
  17. ant使用备忘
  18. content_form.class.php文件不完整 解决方案
  19. [php]手动搭建php开发环境(排错)
  20. [转]DNS服务器原理详解与Centos6.x下搭建DNS服务器

热门文章

  1. 简明Python3教程(A Byte of Python 3)
  2. HDU 4861(多校)1001 Couple doubi
  3. ude—基于udp的全双工可靠传输协议
  4. TOP计划猿10最佳实践文章
  5. 微信小程序之购物车
  6. Python 的神奇方法指南
  7. BIOS 选项设置的含义
  8. 使用openssl工具生成密钥
  9. VLC-FM PLAYLIST
  10. C# 元组、匿名对象、ref&out