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

相关文章

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL 中的 JSON_CONTAIN用法示例详解

《MySQL中的JSON_CONTAIN用法示例详解》JSON_CONTAINS函数用于检查一个JSON文档中是否包含另一个JSON文档,这篇文章给大家介绍JSON_CONTAINS的用法、语法、... 目录深入了解 mysql 中的 jsON_CONTAINS1. JSON_CONTAINS 函数的概述2

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单