【基于GO的Web开发9】gin框架返回json

发布时间:2026/10/24 3:45:03

【基于GO的Web开发9】gin框架返回json 一、JSON 渲染介绍在 Gin Web 开发中前后端交互最常返回 JSON 格式数据这个过程称为JSON 渲染。 核心 APIc.JSON(http状态码, 返回的数据)二、方法 1map 方式返回 JSON原生使用map[string]interface{}构造数据package main import ( net/http github.com/gin-gonic/gin ) func main() { r : gin.Default() r.GET(/json, func(c *gin.Context) { //原生map构造json数据 data : map[string]interface{}{ name: 小王子, message: hello world!, age: 18, } c.JSON(http.StatusOK, data) }) r.Run(:9090) }gin.H 快捷写法推荐gin.H本质就是map[string]interface{}省去手写 map 类型代码更简洁data : gin.H{ name: 小王子, message: hello world!, age: 18, } c.JSON(http.StatusOK, data)三、方法 2结构体方式返回 JSON核心原理结构体返回 JSON 本质是JSON 序列化gin 利用反射读取结构体字段。⚠️ 硬性规则结构体字段名首字母必须大写小写为私有字段反射读取不到JSON 不会输出该字段。基础示例package main import ( net/http github.com/gin-gonic/gin ) //定义结构体类型type关键字 type Msg struct { Name string Message string Age int } func main() { r : gin.Default() r.GET(/another_json, func(c *gin.Context) { data : Msg{ Name: 小王子, Message: Hello golang!, Age: 18, } c.JSON(http.StatusOK, data) }) r.Run(:9090) }运行后返回结果键名大写{Name:小王子,Message:Hello golang!,Age:18}结构体 Tag 标签定制 JSON 键名如果想要返回小写 key给字段添加json标签自定义输出名称。type Msg struct { Name string json:name Message string json:message Age int json:age }添加标签后返回结果{name:小王子,message:Hello golang!,age:18}四、两种方式对比总结gin.H / map适合数据少、结构灵活、字段不固定的场景结构体适合数据字段固定项目大、规范严格的场景代码可读性更高五、高频易错点结构体忘记使用type定义类型错写成var msg struct{}结构体字段首字母小写JSON 返回缺失字段忘记调用c.JSON()路由没有返回任何响应访问测试地址http://127.0.0.1:9090/json http://127.0.0.1:9090/another_json
延伸阅读

更多相关文章

2026/10/24 3:44:40

输电线路施工仿真软件选型指南

输电线路施工仿真软件选型指南:从道亨SLW3D到输电施工全过程计算 作者:自在天(讯图同辉架线施工仿真团队) 河南讯图同辉软件有限公司(www.xuntusoft.com)专注于输电架线仿真系统研发与输变电工程数字化 视频…

2026/10/22 3:52:35

树莓派快速上手笔记:6、驱动MAX30102

第 1 步:接线 MAX30102 模块引脚 接到树莓派物理引脚 图中位置 VIN 引脚 1(3.3V) 左列第 1 个(橙色) GND 引脚 6(Ground) 右列第 3 个(黑色) SDA 引脚 3(GPIO 2,I2C 数据线) 左列第 2 个(蓝色) SCL 引脚 5(GPIO 3,I2C 时钟线) 左列第 3 个(紫色) INT 不接 —…

2026/10/23 18:23:13

电站数据丢了能恢复吗?备份与恢复演练的工程清单

电站数据丢失,最常见的场景不是硬盘坏了,而是没人演练过恢复:网关重装、平台迁移、误删数据表,真出事时才发现备份没接上、恢复要一周。数据备份和恢复演练,应该像消防演练一样定期做。本文给出一份电站数据备份与恢复…

2026/10/24 3:43:06

华为交换机Hybrid接口原理与实战配置指南

1. 什么是Hybrid接口?它到底解决什么实际问题?在华为交换机的实际运维现场,我见过太多人把Hybrid接口当成“高级版Access”或“简化版Trunk”,结果配完发现VLAN通信完全不对——要么所有端口泛洪广播,要么终端根本上不…

2026/10/24 3:43:06

Linux文件系统管理实战:从基础到高级技巧

1. Linux文件系统管理基础认知刚接触Linux时,最让我困惑的就是那个神秘的根目录结构。与Windows的盘符划分不同,Linux将所有存储设备都挂载到统一的目录树下。这种设计就像把整个城市的道路网整合成一张大地图,无论你新增多少条街道&#xff…

2026/10/24 3:43:06

银行科技岗计算机笔试高频考点与刷题策略

1. 这类笔试考的不是深度,是覆盖面和手速第一次坐到银行科技岗笔试的机考位子上,很多人会有点错愕——第一道专业题不是让你写代码,也不是让你设计架构,而是"某处理器主频2GHz,执行一条指令平均需要4个时钟周期&a…

2026/10/24 3:38:06

常用AI网站和学术搜索引擎

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 22:56:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/24 0:02:40

MATLAB缩进快捷键与批量格式化实战指南

1. 被自动缩进折磨的那些年如果你写过MATLAB代码,大概率经历过这种场景:从某个文档、网页或者聊天记录里复制了一段代码,粘贴进编辑器之后,每一行前面都带着莫名其妙的空格,有的行首是四个空格,有的是一个T…

2026/10/24 0:02:40

用Poco实现Qt风格信号与槽的跨平台C++方案

简介:本资源是一份面向C中级开发者的技术实践工程,聚焦于在非Qt框架环境下模拟实现Qt核心通信机制——信号与槽,借助Poco网络库的事件系统完成解耦式对象通信。适用于需在跨平台C项目中引入松耦合回调机制、但受限于无法集成Qt依赖的开发场景…

2026/10/24 0:02:40

ESXi裸机虚拟化安装指南:从硬件兼容到虚拟机部署

1. 为什么还要折腾ESXi:从一台闲置机器说起手里攒了几台淘汰下来的迷你主机,配置不算差,i5加16G内存,扔了可惜,装个桌面系统又觉得浪费。这种场景下,ESXi就成了一个绕不开的选择。它是一套裸机虚拟化平台&a…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑