Gin 学习之响应处理

简介: Gin 学习之响应处理

01

String


c.String() 第一个参数是code,第二个参数是格式化字符串,第三个开始的若干参数支持任何数据类型。


示例代码:

640.png

输出结果:

用户名:frank


02

JSON


Gin 使用 encoding/json 作为默认的 json 包,可以序列化 map 类型的对象。


示例代码:

640.png

输出结果:

{"age":18,"email":"frank@gmail.com","name":"frank"}


gin.H 是 map[string]interface{} 的一种快捷方式。


示例代码:

640.png

输出结果:

{"age":19,"email":"bob@gmail.com","name":"bob"}


还可以序列化 struct 类型的对象,并且可以使用 tag 标签修改响应结果的字段名。


示例代码:

640.png

输出结果:

{"name":"lucy","Email":"lucy@gmail.com","Age":17}


03

JSONP


使用 JSONP 向不同域的服务器请求数据。如果查询参数存在回调,则将回调添加到响应体中。


示例代码:

640.png

输出结果:

curl -X GET http://localhost:8081/user3?callback=ab
abc({"age":16,"email":"lily@gmail.com","name":"lily"});


04

PureJSON


通常,JSON 使用 unicode 替换特殊 HTML 字符,例如 < 变为 \ u003c。如果要按字面对这些字符进行编码,则可以使用 PureJSON。Go 1.6 及更低版本无法使用此功能。


示例代码:

640.png

输出结果:

{"html":"<b>hello</b>"}


05

SecureJSON


使用 SecureJSON 防止 json 劫持。如果给定的结构是数组值,则默认预置 "while(1)," 到响应体。


你也可以使用自己的 SecureJSON 前缀,r.SecureJsonPrefix(")]}',\n")


示例代码:

640.png

输出结果:

while(1);["a","b","c"]

06

AsciiJSON


使用 AsciiJSON 生成具有转义的非 ASCII 字符的 ASCII-only JSON。


示例代码:

640.png

输出结果:

{"age":20,"email":"zs@gmail.com","name":"\u5f20\u4e09"}


07

XML


XML 格式


示例代码:

640.png

输出结果:

<map>
<email>apple@gmail.com</email>
<name>apple</name>
</map>


08

YAML


YAML 格式


示例代码:

640.png





目录
相关文章
|
6月前
|
算法 API UED
基于Gin框架的HTTP接口限速实践
基于Gin框架的HTTP接口限速实践
153 0
|
缓存 API 数据格式
gin框架学习-HTTP请求
POST 请求的参数一般通过 body 传递给服务器. body 中的数据格式有很多种。
362 0
gin框架学习-HTTP请求
|
2月前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据
|
1月前
|
JSON 应用服务中间件 API
使用 Gin 框架实现文件上传:机制与深入解析
使用 Gin 框架实现文件上传:机制与深入解析
|
5月前
|
XML 存储 JSON
gin框架学习笔记(二) ——相关数据与文件的响应
gin框架学习笔记(二) ——相关数据与文件的响应
|
5月前
|
缓存 网络协议 搜索推荐
gin框架学习笔记(三) ——路由请求与相关参数
gin框架学习笔记(三) ——路由请求与相关参数
|
5月前
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
172 0
|
6月前
|
XML JSON 中间件
Gin 学习之 HTTP 请求方法
Gin 学习之 HTTP 请求方法
92 0
|
缓存 前端开发 中间件
Go 框架 Gin 怎么实现允许前端跨域请求?
Go 框架 Gin 怎么实现允许前端跨域请求?
202 0