当前位置: 首页 > news >正文

Gin框架教程02:AsciiJSON

  1. 什么是 AsciiJSON
    AsciiJSON 是 Gin 框架中的一个方法,用于生成仅包含 ASCII 字符的 JSON。对于非 ASCII 字符(例如汉字、特殊符号),AsciiJSON 会将其转义为 Unicode 表示(如 \uXXXX),确保生成的 JSON 数据在不支持 UTF-8 编码的环境中也能正确解析和显示。
  2. 为什么使用 AsciiJSON
    兼容性:当客户端或环境不支持 UTF-8 时,使用 ASCII-only JSON 可以保证数据的可读性和完整性。
    调试:在查看和调试 JSON 数据时,ASCII-only 格式更容易阅读,尤其是在日志或终端中。
  3. 示例与效果
package mainimport ("net/http""github.com/gin-gonic/gin"
)func main() {r := gin.Default()r.GET("/someJSON", func(c *gin.Context) {// 使用 map[string]interface{} 创建动态数据data := map[string]interface{}{"lang": "GO语言", // 包含非 ASCII 字符"tag":  "<br>", // HTML 标签}// 使用 AsciiJSON 输出 JSON// 输出: {"lang":"GO\u8bed\u8a00","tag":"\u003cbr\u003e"}c.AsciiJSON(http.StatusOK, data)})// 启动服务,监听在 0.0.0.0:8080 上r.Run(":8080")
}

效果如图
在这里插入图片描述
解释:
"lang": "GO\u8bed\u8a00":”GO语言“被转义为 Unicode 表示。
"tag": "\u003cbr\u003e":HTML 标签 < br> 被转义为 \u003c(< 的转义)和 \u003e(> 的转义)。
特别注意
1.网址要写对,GET的第一个参数如果写"/",则可以省略,输入localhost:8080后直接回车即可。
2.启动程序后是一直在监听端口的,不会主动结束,代码有改动要先结束当前程序(在命令行中按ctrl+c或者右上角关闭等方法)。

4.关于 map[string]interface{}gin.H
map[string]interface{}gin.H的效果是一样的,在使用 Gin 时,推荐使用 gin.H,尤其是在构建 JSON 响应时,可以使代码更清晰。例如:

c.AsciiJSON(http.StatusOK, gin.H{"lang": "GO语言","tag":  "<br>",
})

5.总结
AsciiJSON 是 Gin 提供的一个重要功能,用于生成兼容 ASCII 的 JSON 响应,确保在不同环境下的数据传输安全无误。通过使用 map[string]interface{} 或 gin.H,可以轻松构建灵活的 JSON 数据结构。


http://www.mrgr.cn/news/49496.html

相关文章:

  • 13.梯度下降法的代码实战——举足轻重的模型优化算法
  • 【JavaScript】JavaScript开篇基础(3)
  • Mac 备忘录妙用
  • TensorRT-LLM七日谈 Day2
  • 数据结构(线性表)
  • 在深圳宝安石岩路过一座关帝宫
  • HTML+CSS+JS实现多张图片点击放大查看的功能
  • 使用docker搭建lnmp运行WordPress
  • 【Linux】Linux下进程Vs线程
  • 【conda】创建、激活、删除虚拟环境
  • 【数据结构】关于环形队列库的改进办法
  • MySQL数据库管理
  • SQL基础练习题一
  • 【踩坑随笔】Failed to build pycocotools
  • k8s-资源管理、实战入门
  • 大数据治理:构建数据驱动的智能决策体系
  • 后端参数校验方式
  • vue的动态组件 keep-alive
  • Informer: Beyond Efficient Transformer for Long SequenceTime-Series Forecasting
  • Java中的Iterator接口,以及HashSet和TreeSet