gin框架返回json数据两种方法

我们在开发是传送给前端的数据往往是以json格式发送的,但具体的方法是有一下两种 (map和结构体)

package main

import (
    "net/http"

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

func main() {
    //设置返回路由引擎
    r := gin.Default()

    r.GET("/json", func(c *gin.Context) {
        //方法一:map
        // data := map[string]interface{}{
        //     "name":    "小魔仙",
        //     "message": "hello golang",
        //     "age":     13,
        //     "sex":     "男",
        // }
        c.JSON(http.StatusOK, gin.H{
            "name":    "小魔仙",
            "message": "hello golang",
            "age":     13,
            "sex":     "",
            "b1":      " 今天是2021年08-30",
        })
    })
    //结构体返回,灵活使用tag来对结构体字段做定制化操作
    type msg struct {
        Name    string
        Message string
        Age     int
    }
    r.GET("/another_json", func(c *gin.Context) {
        data := msg{
            Name:    "乔四美",
            Message: "七七",
            Age:     77,
        }
        c.JSON(http.StatusOK, data) //json的序列化,通过反射 ,所以结构体内的字段首字母要大写
    })

    r.Run(":9090")
}

注意:

gin.H{}  看源码  也是封装的一个map格式的数据类型
原文地址:https://www.cnblogs.com/shuai666/p/15205676.html