首页 > 其他分享 >Go的网络操作简易学习

Go的网络操作简易学习

时间:2022-12-26 18:37:27浏览次数:32  
标签:string struct 网络 简易 json Go interface Class Name


Go的网络操作

库——io/ioutil

ioutil.ReadAll

pageBytes, err := ioutil.ReadAll(resp.Body)

库——net/http

resp.Body.Close()

  • 一般在go对请求http之后,都要进行这个语句
  • 这个语句主要用于确定body是否被清理干净,只要没有清理干净就会被重新连接,容易导致内存泄漏

库——encoding/json

  • json是用于前后端数据交互的交换格式。
  • 任意一端将数据转换成json字符串,另一端再将该字符串解析成相应的数据结构,如string类型,strcut对象等

json.Marshal

  • 将数据编码成json字符串
type Stu struct {
Name string `json:"name"`
Age int
HIgh bool
sex string
Class *Class `json:"class"`
}

type Class struct {
Name string
Grade int
}

func main() {
//实例化一个数据结构,用于生成json字符串
stu := Stu{
Name: "张三",
Age: 18,
HIgh: true,
sex: "男",
}

//指针变量
cla := new(Class)
cla.Name = "1班"
cla.Grade = 3
stu.Class=cla

//Marshal失败时err!=nil
jsonStu, err := json.Marshal(stu)
if err != nil {
fmt.Println("生成json字符串错误")
}

//jsonStu是[]byte类型,转化成string类型便于查看
fmt.Println(string(jsonStu))
}


type Stu struct {
Name interface{} `json:"name"`
Age interface{}
HIgh interface{}
sex interface{}
Class interface{} `json:"class"`
}

type Class struct {
Name string
Grade int
}

func main() {
//与前面的例子一样
......
}

结果:​​{"name":"张三","Age":18,"HIgh":true,"class":{"Name":"1班","Grade":3}}​

  • 如果一开始旁边没有打上json的标签,下面的取变量名作为key,否则就用标签作为key
  • 下面用interface{}就能接受任意变量类型

json.Unmarsahl

将json串解码


标签:string,struct,网络,简易,json,Go,interface,Class,Name
From: https://blog.51cto.com/u_15923198/5970002

相关文章

  • Goland的简易学习
    Go学习包声明+引入包+函数+变量+语句&表达式+注释packagemainimport"fmt"funcmain(){fmt.Println("Helloworld")}必须在源文件非注释的第一行指明这个文件属于拿哪个......
  • A Neural Algorithm of Artistic Style论文学习
    ANeuralAlgorithmofArtisticStyle文章大致:算法基于深度神经网络,能将任意图片根据任意画家的风格转化,并提供一种方法了解人类如何创造和感知艺术意象featuremap(特征映......
  • django中间件
    django中间件内容概要django中间件简介django中间件两个重要方法django自定义中间件django中间件三个了解方法基于django中间件实现功能的插拔式设计内容详细djang......
  • 如何设计一个“高大上”的 logo
    前不久,我们老大写的一篇博客《 Coding,做一个有情怀的产品 》中有提到设计Codinglogo的大致由来,今天我就设计Coding猴头的过程具体说说如何设计一个logo。方法仅供参......
  • 关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB
    一、关系型数据库系统理论知识1.1学习笔记​​数据库系统概念读书笔记-引言​​数据库系统概念读书笔记-关系数据库数据库系统概念读书笔记-数据库发展史(上)数据库系统概念......
  • mongodb定时备份
    1、https://www.jianshu.com/p/a9352e28e2d6  (未测试)通过centos脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份具体操作:1、创建Mongodb数据......
  • beego数据交互
    模板引擎指定模板:c.TplName="index.tpl"默认支持tpl和htmlbeego.AddTemplateExt设置其他后缀beego.AddTemplateExt("后缀名")如果不设置该参数,那么默认会去到模板目录的......
  • go channel源码
    大纲是什么,结构体定义给chan送数据从chan读数据 是什么?1本质是一个环形数组源码中定义为hchan主要属性有数组长度数据数量环形数组环形......
  • 网络进阶管理
    目录1.链路聚合2.链路聚合配置2.1Centos7/RHEL7配置bond聚合链路2.1.1Centos7/RHEL7配置bond02.1.2Centos7/RHEL7配置bond12.2Centos6/RHEL6配置bond聚合链路2.3Cen......
  • 网络管理
    目录1.网卡命名1.1传统网卡命名机制1.2redhat7网卡命名机制1.3网络接口名称组成格式1.4回归传统命名2.网络管理常用命令2.1ifconfig2.2ip2.3route2.4hostname与h......