首页 > 其他分享 >Golang GIN 接收结构体切片(前端对象数组)

Golang GIN 接收结构体切片(前端对象数组)

时间:2023-05-28 14:45:44浏览次数:38  
标签:切片 CreateTeast string postData InvalidParam Golang json GIN name

想接收前端这样的数据格式:【json数组】

[
    {
        "password": "casso",
        "mobile": "13456789999",
        "nick_name": "go",
        "icon": "地址"
    },
    {
        "password": "casso",
        "mobile": "13456789999",
        "nick_name": "go",
        "icon": "地址"
    }
]

GO代码

//TestUser 创建测试用户
type TestUser struct {
    PassWord string `json:"password" binding:"required"`  // 密码
    Mobile   string `json:"mobile" binding:"required"`    // 电话
    NickName string `json:"nick_name"` // 昵称
    Icon     string `json:"icon"`      // 头像
}
// CreateTeast 创建测试用户
func CreateTeast(c *gin.Context){
    var postData []TestUser
    if err := c.ShouldBind(&postData); err != nil {
        response.ReturnJSON(c, http.StatusOK, statuscode.InvalidParam.Code,statuscode.InvalidParam.Msg, nil)
        return
    }
    // 走到这里,postData 里面就有数据了
}

稍微复杂的数据结构

type Cards struct {
    No    string `json:"no"`
    Local string `json:"local"`
}

type Per struct {
    Name string  `json:"name"`
    Card []Cards `json:"card"`
    Age  int     `json:"age"`
}

// CreateTeast 创建测试用户
func CreateTeast(c *gin.Context) {
    var postData Per
    if err := c.ShouldBind(&postData); err != nil {
        response.ReturnJSON(c, http.StatusOK, statuscode.InvalidParam.Code, statuscode.InvalidParam.Msg, nil)
        return
    }
    // 走到这里,postData 里面就有数据了
}

总结:

  • 最重要的一点是:GIN框架,GET 方法并不能使用ShouldBind等这类方法获取数据,所以还是要按照规范来。

标签:切片,CreateTeast,string,postData,InvalidParam,Golang,json,GIN,name
From: https://www.cnblogs.com/beatleC/p/17438237.html

相关文章

  • CentOS 9 安装 Nginx 模块 `subs_filter`
    sub_filter和subs_filter区别sub_filter(0.7.24):替换响应体(ResponseBody)中的文本,只能设置一组替换。subs_filter:替换响应体(ResponseBody)和响应头(ResponseHeaders)中的文本,可以设置多组替换。sub_filter使用案例:http{server{listen80;server_......
  • Unity的IGenerateNativePluginsForAssemblies:深入解析与实用案例
    UnityIGenerateNativePluginsForAssembliesUnity是一款非常流行的游戏引擎,它支持多种平台,包括Windows、Mac、Linux、Android、iOS等。在Unity中,我们可以使用C#编写游逻辑,但是有些时候我们需要使用一些原生的代码来实现一些高性能的功能,比如图像处理、音频等。这时候,我们就需要使......
  • Golang环境——GOPATH vs go.mod
    GOPATH在本文中,我们将探讨Go编程的传统环境与基础环境之间的差异go.mod。这种区别对Go开发人员如何构建和管理他们的项目工作区和依赖项具有重要意义。我们将从了解GOPATH环境、它的组织和结构开始。然后,我们将探讨go.mod采用这种方法来提供模块化和灵活的方式来组织Go项......
  • [nginx]lua控制请求头
    前言nginx原生提供expires、add_header两个指令控制请求头,在LuaAPI中也有类似的指令。添加请求头指令:ngx.req.set_header语法:ngx.req.set_header(header_name,header_value)环境:set_by_lua*、rewrite_by_lua*、access_by_lua*、content_by_lua*、header_filter_by_lua*、b......
  • Tengine 入门实战(1)--简介及安装
    1、简介Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。Tengine特......
  • pagintaion
    ```"""自定义的分页组件"""fromdjango.utils.safestringimportmark_safeclassPagination(object):def__init__(self,request,queryset,page_size=10,page_param="page",page_show=5):"""......
  • Nginx编译安装2
    1.进入安装目录:#cd/usr/local/src 2、下载nginx源码文件nginx网址:http://nginx.org/en/download.html 3、复制文件下载地址:http://nginx.org/download/nginx-1.22.1.tar.gz4、开始下载:#wgethttp://nginx.org/download/nginx-1.22.1.tar.gz5、解压#tar-zxvf......
  • [golang]gin框架接收websocket通信
    前言WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket让客户端和服务端之间的数据交换变得非常简单,且允许服务器主动向客户端推送数据,并且之后客户端和服务端所有的通信都依靠这个专用协议进行。本文使用gin框架编写服务端应用,配置路由接收websocket请求并处理。......
  • AtCoder Beginner Contest 298(D,F)
    AtCoderBeginnerContest298(D,F)D(思维,模拟,快速幂)D大意是最初有一个数字\(1\),然后进行\(q\)个操作有三种操作\(1\),输入\(1,x\),在原来的数字后面添加一个尾数,例如原本的数是\(12\),输入了\(15\),数字变成了\(125\)\(2\),输入\(2\),把原来的数字第一位数删除,例如原本的数是......
  • Unity中的RegisterPlugins:深入解析与实用案例
    Unity中的RegisterPlugins:深入解析与实用案例在Unity游戏开发中,我们经常需要使用第三方插件来实现一些特定的功能。为了让这些插件能够在Unity中正常工作,我们需要对它们进行注册。本文将详细介绍Unity中的RegisterPlugins方法,并通过三个实用案例来展示其强大的功能。什么是Regist......