gin响应JSON的几种方法

707 阅读1分钟

gin响应JSON的几种方法

func main() {
	router := gin.Default()
	router.GET("/", json)
	router.Run(":80")
}

1.json响应结构体

func json(ctx *gin.Context) {
	type user struct {
		UserName string
		Age      int
		PsssWord string `json:"-"` //转换为json时忽略
	}
	timmy := user{"Timmy", 21, "123456"}
	ctx.JSON(200, timmy)
}

2.json响应map

func json(ctx *gin.Context) {
	// json响应map
	userMap := map[string]string{
		"user_name": "小仙女",
		"age":       "25",
	}
	ctx.JSON(200, userMap)
}

3.json直接响应

func json(ctx *gin.Context) {
	// json直接响应
	ctx.JSON(200, gin.H{"message": 123})
}

GO框架Gin文件响应

文件结构:

image.png

GO框架Gin响应html

func _html(ctx *gin.Context) {
	ctx.HTML(200,"index.html",gin.H{"username":"风风"})
}
func main() {
	router := gin.Default()
        //加载目标目录下所有的目标文件
        router.LoadHTMLGlob("templates/*")
	router.GET("/", _html)
	router.Run(":80")
}
<!DOCTYPE html>
<html>
<header>
你好啊 {{.username}}
</header>
</html>

GO框架Gin响应文件或者图片

知识点:在golang中,没有相对文件的路径,他只有相对项目的路径

func main() {
	router := gin.Default()
        //知识点:在golang中,没有相对文件的路径,他只有相对项目的路径
	router.StaticFile("/1.png", "./static/小狗.png")
	// router.GET("/", _html)
	router.Run(":80")
}

GO框架Gin文件夹访问权限开放

func main() {
	router := gin.Default()
	//加载目标目录下所有的目标文件
	router.StaticFS("/s", http.Dir("static/static2"))
	// 可以访问:http://127.0.0.1/s/1.txt
	router.Run(":80")
}