golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct

2024-09-04 07:08

本文主要是介绍golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.结构体struct
    • 1.1 声明结构体
    • 1.2 初始化结构体 以及 传参
  • 2. 结构体数组、append
  • 3. 接口返回 含数组的结构体 常用写法
    • json string转struct

1.结构体struct

看这个文章,看一个struct

1.1 声明结构体

// student
type Student struct {Name stringAge  uint64
}// class
type Class struct {ClassNo       uint64ClassName     stringStudents      []Student //数组IsHonor       bool
}

1.2 初始化结构体 以及 传参

    // 初始化结构体的方法一:class := Class{ClassNo:  302ClassName:	"三年级二班",Students:    students, // students变量IsHonor:    false,}key, err := t.Get(class) //普通func (s *SService) Get(class Class){  //普通}// 初始化结构体的方法二: 取地址class := &Class{ClassNo:  302ClassName:	"三年级二班",Students:    students, // students变量IsHonor:    false,}key, err := t.Get(class) // 传的是个”地址“func (s *SService) Get(class *Class){ // 用”指针“接} // 初始化结构体的方法三:class := Class{}class.ClassNo = 302class.ClassName = "三年级二班"class.Students = studentsclass.IsHonor = false

2. 结构体数组、append

	var classOne Classvar classList []Classfor ....:取到值先赋给classOne,再用classList = append(classList, classOne)

3. 接口返回 含数组的结构体 常用写法

type RespData struct {Name  string `json:"name"`Age uint64 `json:"age"`
}type JiekouResponse struct { List []RespData `json:"list"` 
}func (t *TController) SuggestGet(){res := &JiekouResponse{}res.List = []RespData{} // 定义数组s := service.NewTService(t.param)allData := s.GetAllData()var dataOne RespDatafor _, data := range allData { // 循环赋值dataOne.Name = data.NamedataOne.Age = data.Ageres.List = append(res.List, dataOne) // 数组append给值}
}

json string转struct

type UserInfo struct {ParentNodeId  int64  `json:"parent_node_id"`NodeTypeId    uint32 `json:"node_type_id"`DimeNodeValue string `json:"dime_node_value"`CnName        string `json:"cn_name"`EnName        string `json:en_name"`
}// 解析userInfolist:从json string到structuserinfoStr := req.Userinfolist // req.Userinfolist是个list,list里是非常多的json string [{"a":1,"b":2,"c":"3"},{},...]var userInfolist []*UserInfoif userinfoStr != "" {err := json.Unmarshal([]byte(userinfoStr), &userInfolist)fmt.Println("userInfolist:", userInfolist)fmt.Println(userInfolist[0].DimeNodeValue)if err != nil {return res, err}}

其他文章参考:golang结构体-对象和指针-函数赋予

这篇关于golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135335

相关文章

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问