package main
//json 与struct转化
import ("encoding/json""fmt"
)
// 结构体首字母要大写打印出来后给的别名
type People struct {Name string `json:"name_title"`Age int `json:"age_size"`
}
//struct 转json
func StructToJsonDemo() {p := People{Name: "alpha",Age:  18,}jsonBytes, err := json.Marshal(p) //结构体转json序列化if err != nil {fmt.Println(err)}fmt.Println(string(jsonBytes))
}
func StructToJsonDemo() {// 结构体定义时初始化books :=[]Book{Book{"alpha",200,},Book{"spider",200,},}books[0].Price=500
//结构体定义完后,初始化book1 :=[2]Book{}book1[0].Price =100book1[0].Title="alpha"book1[1].Price =300jsonBytes, err := json.Marshal(book1) //结构体转json序列化if err != nil {fmt.Println(err)}fmt.Println(string(jsonBytes))
}

//json转化为结构体func JsonToStructDemo(){jsonStr := `{"name_title": "alpha""age_size":12}`var people Peoplejson.Unmarshal([]byte(jsonStr), &people)fmt.Println(people.Age,people.Name)
}// json转mapfunc JsonToMapDemo(){jsonStr := `{"name": "alpha","age": 18}`var mapResult map[string]interface{}//传地址才会修改该maperr := json.Unmarshal([]byte(jsonStr), &mapResult)if err != nil {fmt.Println("JsonToMapDemo err: ", err)}fmt.Println(mapResult)
}
//map转jsonfunc MapToJsonDemo(){mapInstances := []map[string]interface{}{}instance_1 := map[string]interface{}{"name": "John", "age": 10}instance_2 := map[string]interface{}{"name": "Alex", "age": 12}mapInstances = append(mapInstances, instance_1, instance_2)jsonStr, err := json.Marshal(mapInstances)if err != nil {fmt.Println("MapToJsonDemo err: ", err)}fmt.Println(string(jsonStr))
}func main()  {StructToJsonDemo()StructToJsonDemo()JsonToMapDemo()MapToJsonDemo()}
// convert json to structpackage mainimport ("fmt""encoding/json"
)type Host struct {IP stringName string
}func main() {b := []byte(`{"IP": "192.168.11.22", "name": "SKY"}`)m := Host{}err := json.Unmarshal(b, &m)if err != nil {fmt.Println("Umarshal failed:", err)return}fmt.Println("m:", m)fmt.Println("m.IP:", m.IP)fmt.Println("m.Name:", m.Name)
}
output::
m: {192.168.11.22 SKY}
m.IP: 192.168.11.22
m.Name: SKY

go - json -struct相关推荐

  1. linux c 解析生成json(jansson安装和使用)

    Jansson是用于编码,解码和生成JSON数据的C语言库.它的特性: 简单直观的API和数据模型 全面的文档 不依赖其他库 全面支持Unicode(UTF-8) 大量测试套件 0.下载jansson ...

  2. 【ESP8266】使用ESP8266 NONOS SDK的JSON API

    2016年9月30日更新:本人移植了cJSON到ESP8266的NONOS SDK,详情可以查看这篇文章: http://blog.csdn.net/yannanxiu/article/details ...

  3. go语言中结构体与json

    go语言中使用Marshal函数实现结构体json化,需要有一下两点注意 因为json化是在其他函数中完成,因此需要将结构体中的成员大写,这样才能在生成的结构体中有对应的元素 在结构体后面,如果有需要 ...

  4. C++使用Json作为数据包装格式的通信

    From: http://blog.sina.com.cn/s/blog_4ae178ba01014eve.html http://blog.csdn.net/chenziwen/article/de ...

  5. c语言json映射,GitHub - xujun621/cson: 基于C语言的json数据映射解析库

    CSON 基于cJSON,运行于C语言平台的json-struct模型解析工具 简介 CSON是一个简单的cJSON的二次封装,相比于使用原生cJSON一层一层解析的方式,CSON采用模型映射的方式, ...

  6. go语言JSON验证器

    go语言JSON验证器 转自:http://studygolang.com/articles/9621 分析 既然要验证JSON的有效性,那么必然需要清楚的知道JSON格式,这个在JSON官网已经给我 ...

  7. python脚本将json文件生成C语言结构体

    1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...

  8. 在C语言上优雅地使用json - CSON原理解析

    前言 json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上,也需要开始使用json进行数据传输,那么,如何快速简洁地用C语言进行json的序列化和反序 ...

  9. CSON+CJSON,解析json数据更优雅?

    关注.星标公众号,直达精彩内容 作者 |  NevermindZZT 前言 json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上,也需要开始使用jso ...

  10. C++实现对Json数据的友好处理

    背景 C/C++客户端需要接收和发送JSON格式的数据到后端以实现通讯和数据交互.C++没有现成的处理JSON格式数据的接口,直接引用第三方库还是避免不了拆解拼接.考虑到此项目将会有大量JSON数据需 ...

最新文章

  1. 机器学习中的梯度下降法
  2. 简单粗暴,5行代码,快速实现图像分割
  3. python中collections_Python中collections模块的基本使用教程
  4. java 高效批量插入 sqlserver 数据库
  5. 为什么wait和notify必须放在synchronized中?
  6. Week06-接口、内部类
  7. Nodejs版本的企业微信中接收消息与腾讯对接之验证URL 代码已经上传,可以去下载
  8. 习题4.5 顺序存储的二叉树的最近的公共祖先问题 (25 分)
  9. 如何按行政区划下载谷歌卫星地图并裁剪
  10. java 修改pdf文档的页面的大小
  11. Latex插入文献--利用谷歌学术
  12. 二进制乘除法运算原理
  13. JAVA 计算圆的面积和周长: 创建一个圆Circle类。为该类提供一个变量r表示半径,一个常量PI表示圆周率; * 同时为该类提供两个方法:方法一用于求圆的面积,方法二用于求圆的周长;
  14. 微信小程序iphone11 wx.openBluetoothAdapter 返回状态10001 当前蓝牙适配器不可用
  15. 气象ts评分_中国气象局--国家气候中心--气候系统监测·诊断·预测·评估
  16. wangeditor手机适配方案
  17. .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换
  18. 阿布扎比全球市场推出加密货币监管框架
  19. Web安全之SQL注入漏洞学习(七)-堆叠注入
  20. 中国地名省市区xml

热门文章

  1. SQL Sever — 上课笔记【主键、外键、唯一性约束、检查约束】
  2. 登录注册页面(连接MySQL8.0.15版本)
  3. [NOI2015]寿司晚宴——状压dp
  4. 20145302张薇 《信息安全系统设计基础》第0周学习总结
  5. 在ubuntu12.04下编译android4.1.2添加JNI层出现问题
  6. IRF之ARP-MAD检测
  7. php 获取刚插入的一条,php获得刚插入数据的id 的几种方法
  8. Kubernetes详解(二十五)——Deployment控制器扩容
  9. Linux之磁盘管理——磁盘分区
  10. 初识Git-GitHub