首页 > 其他分享 >go gin 必须使用 dive 标记,它告诉 required 校验 深入到 slice、array 这样的子结构体里

go gin 必须使用 dive 标记,它告诉 required 校验 深入到 slice、array 这样的子结构体里

时间:2024-01-21 09:22:39浏览次数:22  
标签:slice dive required binding 子结构 gin data GetDataTest

package main

import (
"fmt"
"net/http"

"github.com/gin-gonic/gin"
)

type user struct {
Name string `json:"name" binding:"required"`
Email string `json:"email" binding:"required,email"`
}

type data struct {
User []user `json:"user" binding:"required,dive"` // use dive tag
}

//GetDataTest will get test data
func GetDataTest(c *gin.Context) {
var data data
err := c.Bind(&data)
if err == nil {
fmt.Printf("%+v", data)
c.JSON(http.StatusOK, gin.H{
"message": "done",
})
} else {
c.JSON(http.StatusBadRequest, gin.H{
"message": err.Error(),
})
}
}



func main(){

route := gin.Default()
route.POST("/", GetDataTest)
route.Run(":8080")
}

 

 

https://blog.csdn.net/private66/article/details/82424743

标签:slice,dive,required,binding,子结构,gin,data,GetDataTest
From: https://www.cnblogs.com/cheyunhua/p/17977517

相关文章

  • 【踩了一个坑】为什么 golang struct 中的 slice 无法原子赋值
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯有这样一个结构体:typeMyStstruct{Field[]byte}我在数组排序中想要交换值:funcSwap(arr[]MySt,i,jint){arr[i],arr[j]=arr[j],arr[i]}我猜......
  • python 切片slice和实现一个切片类
    alist=[2,5,32,34,11,44,65,113]print(alist[::])##取所有alist[2,5,32,34,11,44,65,113]print(alist[::-1])##alist倒序[113,65,44,11,34,32,5,2]print(alist[::2])##取alist偶数位数值[2,32,11,65]print(alist[1::2])##取alist奇数位数值[5,34,44,......
  • js slice()函数
    不包括"red",这是因为拆分操作要从位置1开始,即从"green"开始。得到的colors2数组包含1"green"、"blue"、"yellow"和"purple"。colors3数组是通过调用slice()并传入1和4得到的,即从位置1开始复制到位置3。因此colors3包含"green"、"blue"和&......
  • [CSS]border-image-slice宽高不确定时自定义边框
    宽高不确定时自定义边框效果: <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>borde......
  • 无涯教程-Go - Slice(切片)
    GoSlice是GoArray的抽象,GoArray数组允许您定义可容纳相同种类的变量,但是它不提供任何内置方法来动态增加其大小或获取其自身的子数组。Slice切片克服了此限制,它提供了Array数组所需的许多实用程序功能,并广泛用于Go编程中。定义切片要定义Slice切片,可以将其声明为数组,而无需......
  • js slice截取数组 + splice删除/添加数组数据
    varheroes=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];//slice截取不改变原数组返回新的数组/*slice(开始索引,结束索引)从0开始左开右闭*/console.log(heroes.slice(1,4))//['蔡文姬',......
  • BIgdataAIML-IBM-A neural networks deep dive - An introduction to neural networks
    https://developer.ibm.com/articles/cc-cognitive-neural-networks-deep-dive/ByM.TimJones,PublishedJuly23,2017Neuralnetworkshavebeenaroundformorethan70years,buttheintroductionofdeeplearninghasraisedthebarinimagerecognitionand......
  • 【LevelDB】【include】Slice类解析
    Slice类Slice类是对字符串的封装,设计思想与std::string_view相似。源文件位置include/leveldb/slice.h优点:1、拷贝速度快,Slice的拷贝仅需拷贝数据指针和数据长度2、多个Slice可指向同个字符串,减少资源开销3、支持std::string......
  • Time slice based task routine in C
          基于时间片的轮询任务调度实例。#include<stdint.h>#include<stdio.h>#include<WinSock2.h>#defineMAX_TASK_NUM10#defineMAX_HALF_WORD0xffff#definefalse0#definetrue1staticuint16_tg_ti......
  • go数据类型-slice底层
    切片的底层数据结构有上篇string为基础了,能猜到slice肯定也有一个对应的struct。在runtime的slice.go中typeslicestruct{ arrayunsafe.Pointer lenint capint}切片的本质是对数组的引用len表示当前已经存储的个数,cap表示容量。切片的创建......