文章目录

  • Gin之JSON序列化
    • 1.自定义map序列化
    • 2.gin.H序列化
    • 3.自定义结构体序列化(大写字段)
    • 4.自定义结构体序列化(小写字段)
    • 5.自定义结构体序列化(大写字段+tag)

Gin之JSON序列化

注:本文基于Windos系统上Go SDK v1.17.5、github.com/gin-gonic/gin v1.7.7依赖进行讲解

1.自定义map序列化

注意:gin中的序列化规则是与go的sdk中序列化一样的

package main
import ("github.com/gin-gonic/gin""net/http"
)
type TreeNode struct {Val   intLeft  *TreeNodeRight *TreeNode
}
func main() {r := gin.Default()r.GET("/someJSON", func(c *gin.Context) {//自定义mapdata := map[string]interface{}{"name":    "小王子","message": "helloworld","age":     18,}c.JSON(http.StatusOK, data)})r.Run()
}

2.gin.H序列化

package mainimport ("github.com/gin-gonic/gin"
)
func sayhello(c *gin.Context) {c.JSON(200, gin.H{"messgae": "Hello golang",})
}
func main() {r := gin.Default()r.GET("/hello", sayhello)r.Run(":9090")
}

3.自定义结构体序列化(大写字段)

package main
import ("github.com/gin-gonic/gin""net/http"
)
type TreeNode struct {Val   intLeft  *TreeNodeRight *TreeNode
}
func main() {r := gin.Default()r.GET("/JSON", func(c *gin.Context) {// 自定义结构体var msg struct {Name    string Message stringAge     int}msg.Name = "小王子"msg.Message = "Hello world!"msg.Age = 18c.JSON(http.StatusOK, msg)})r.Run()
}

4.自定义结构体序列化(小写字段)

package mainimport ("github.com/gin-gonic/gin""net/http"
)type TreeNode struct {Val   intLeft  *TreeNodeRight *TreeNode
}func main() {r := gin.Default()r.GET("/JSON", func(c *gin.Context) {// 自定义结构体var msg struct {name    string   Message stringAge     int}msg.name = "小王子"msg.Message = "Hello world!"msg.Age = 18c.JSON(http.StatusOK, msg)})r.Run()
}

5.自定义结构体序列化(大写字段+tag)

假如前端人员要求返回的json的key首字母就是大写的,则可用tag的方法

演示1:


package main
import ("github.com/gin-gonic/gin""net/http"
)
func main() {r := gin.Default()r.GET("/JSON", func(c *gin.Context) {// 自定义结构体var msg struct {Name    string `json:"name"`Message stringAge     int}msg.Name = "小王子"msg.Message = "Hello world!"msg.Age = 18c.JSON(http.StatusOK, msg)})r.Run()
}

演示2:

package mainimport ("github.com/gin-gonic/gin""net/http"
)
func main() {r := gin.Default()r.GET("/JSON", func(c *gin.Context) {// 自定义结构体var msg struct {Name    string `json:"aaaaa"`//可以随便定义Message stringAge     int}msg.Name = "小王子"msg.Message = "Hello world!"msg.Age = 18c.JSON(http.StatusOK, msg)})r.Run()
}

Gin之JSON序列化相关推荐

  1. gin结构体序列化转换

    gin结构体序列化转换 不想序列化的字段 用 - Field int `json:"-"` 空值则省略改字段 用 omitempty Field int `json:"m ...

  2. C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出

    原文:C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出 从StackOverflow里找到的答案.发现对最新的Newtownsoft的JSON序列化也同样适用. https://st ...

  3. .NET 自定义Json序列化时间格式

    .NET 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规 ...

  4. C# Json 序列化与反序列化二

    /// <summary>/// 将对象转换为 JSON 字符串/// </summary>/// <typeparam name="T">&l ...

  5. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  6. 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json

    1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2: ...

  7. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore@XmlTransient 转载于:https://www.cnblogs.com/xiluhua/p/9192577.html

  8. 解决Python自带的json序列化工具不能序列化datetime类型数据问题

    解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...

  9. Logstash为什么那么慢?—— json序列化

    今天跟峡谷金桥聊天,询问起Logstash的性能,金桥提示说Logstash中json的序列化是浪费性能的一方面.于是便有了下面的测试: 第一步,造数据 首先需要造一份数据,数据可以通过logstas ...

最新文章

  1. 产品需求管理经验分享
  2. bzoj 4753: [Jsoi2016]最佳团体
  3. IDC时评:你对边缘计算有多少误解?
  4. 处于计算机学科的基础地位,谈谈离散数学在计算机学科中的地位和作用(原稿)...
  5. thinking-in-java(16) 数组
  6. ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?
  7. 除了下拉框/下拉联想词优化推广,还可以做那些网络推广?
  8. 树的孩子链表表示法可执行代码(创建,层次遍历)
  9. Chrome(谷歌浏览器)安装Adblock实现屏蔽烦人广告
  10. 计算机英语固定词组搭配,英语短语搭配,英语中穿的五种用法及搭配
  11. 同源时钟/同步时钟/异步时钟/同源时钟之间时序约束/clk group
  12. 如何离线加载全国2.48TB天地图
  13. Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接
  14. 语音识别笔记(二)计算音系学
  15. 知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD)
  16. 工业自动控制过程中最好用SCADA软件推荐
  17. STM32F05 学习中............
  18. 江苏省的计算机二级考试c语言
  19. Python爬虫之pyppeteer常用API快速上手
  20. 人脸识别5.1.3- insightface人脸识别模型arcface-Paddle

热门文章

  1. excel怎么设置打印区域_EXCEL打印页面设置技巧(四)打印区域和分隔符
  2. 【ae】蒙版边缘羽化
  3. sql server 与 oracle 数据库连接
  4. 如何有效利用大数据?
  5. word章节、图、表自动编号
  6. java json循环引用_填坑,解决json对象循环引用,在复杂案例中的应用
  7. SEO推广-SEO推广软件-SEO推广工具
  8. 北漂程序员深夜emo发帖求助:女朋友走了我很孤独 ......
  9. iPhone 6 为何坚持1GB内存?
  10. [附源码]计算机毕业设计Node.js善茶茶叶网站(程序+LW)