开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:JSon 介绍和应用场景】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9736
JSon 介绍和应用场景
内容介绍
一、json 基本介绍
二、代码实现
一、json 基本介绍
1.概述
JSQN(JavaScrtiptObject Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。key-value 为 json 的经典用法
JSON 是在2001年开始推广使用的数据格式,目前已经成为主流的数据格式。
JSON 易于机器解析和生成,并有效地提升网络传输效率,通常程序在网络传输时会先将数据(结构体、map 等)序列化成 json 字符串,到接收方得到 json 字符串时,在反序列化恢复成原来的数据类型(结构体、map 等)。这种方式已然成为各个语言的标准。
2.应用场景:
(1)Web编程中的应用
服务器返回一些数据给浏览器,返回一个省有多少城市的数组,go 数组不会直接返回给浏览器,先将 go 数组 json 序列化处理,得到 json 字符串。再将 json 字符串返回给浏览器。(由于 json 字符串利于网络的传输,格式科学所以不将数组直接传输给浏览器。)传输后浏览器接收到字符串,将 json 进行反序列化处理成一个数组或者其他数据。反序列化的目的是还原成数组或其它类型,还原成数组后再 dom 编程进行显示。传输时都遵守 json 格式
(2)tcp 编程中的应用
[go 写了聊天系统]
A 和 B 想通讯要经过中转服务器,先将数组用序列化转为 json 字符串,将字符串传给 go 后台的服务器,go 后台服务器接收到 json 字符串后原封不动传回到 B 客户端。后台服务器 go 起到了中转作用,B 客户端接收到的为 json 字符串,反序列化得到数组再显示。这些过程遵守的也是json格式,这样做的好处是所有过程都遵循这一格式程序容易控制。
Json 轻便、容易控制、高效,所以目前无论 web 编程 b/s 还是 tcp 编程 c/s 基本都遵守 json 格式
二、代码实现
func
madn(){
//定义几个变量,用于接收命令行的参数值
var user string
var pud string
var host string
var port Ant
//8user 就是接收用户命令行中输入的-u 后面的参数值
//"u”,就是-u 指定参数
//"”。默认值
/1"用户名,默认为空”说明
flag.Stringvar(&user,"w","","用户名,歌认为空”)
flag.StrangVar(&pwd,"pwd"。,“密码,默认为空“)
flag.Stringyar(&host,"h","Localhost”,"主机名,默认为 Localhost")
flag.Intvar(&port,"port"。 3306,“端口号,状认为3306"月
//这里有一个非常重要的操作,转换,必须调用该方法
Flog.Parse(y
//输出結果
fmt.Prantf("user=Xv pwde%v host-%v port-‰",
user。 pwd, host, port)