2021-06-13
来源:华纳网
责任编辑:王双双
人气:
核心提示:【谷雨课堂】Go实战 No.019 Go干货!玩转JSON走遍互联网
知识点:
使用JSON
本课内容:
大家好,欢迎来到谷雨课堂,
JSON这个词语想必大家非常熟悉了
在微信小程序及各种前端框架里,
几乎所有的数据传输都被JSON承包了
本节,我们使用比较传统的JQuery和Go来进行JSON的数据传输
对于VUE等前端框架,使用方法其实是类似的
JSON不仅仅可以传输文本数据,二进制数据其实也是可以传输的,
比如我们在文件上传时,H5有提供将文件或图片转为Base64的功能
这样我们就可以使用JSON进行图片或文件的传输的
同样,音频、视频也可以这样处理,
唯一需要关注的就是传输数据量大小的问题了。
没错,非常简单,只有这几条语句。
<head>
<style>
</style>
<script src="/static/js/jquery.min.js"></script>
<script>
//使用JQuery进行数据交互
function json_payload()
{
data = {
"cmd":"append_user",
"username":"user111",
"password":"123456",
}
$.ajax({
type: "POST",
url: "/api",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
success: function (resp) {
console.log(resp)
alert(resp.cmd+"\n\n"+resp.username)
},
error: function (err) {
alert("error")
}
})
}
</script>
</head>
<body>
JSON示例
<hr>
<input type="button" value="JSON提交信息" onclick="json_payload()">
</body>
func InitWebApi() {
log.Println("GuYu GoLang ....")
webServer := gin.Default()
//注册静态文件目录
webServer.Static("/static", "./static")
//注册模板目录
webServer.LoadHTMLGlob("tpl/*")
webServer.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index_jquery_json.html", gin.H{})
})
webServer.POST("/api", func(c *gin.Context) {
data, err := c.GetRawData()
if err != nil {
fmt.Println(err.Error())
return
}
payload := string(data)
json := JsonToMap(payload)
cmd := json["cmd"]
resp := gin.H{
"cmd": cmd,
"username": json["username"],
"tick": payload,
}
c.JSON(200, resp)
})
webServer.Run(":8090")
}
使用Postman进行数据接口调试
图片
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
使用JSON
本课内容:
大家好,欢迎来到谷雨课堂,
JSON这个词语想必大家非常熟悉了
在微信小程序及各种前端框架里,
几乎所有的数据传输都被JSON承包了
本节,我们使用比较传统的JQuery和Go来进行JSON的数据传输
对于VUE等前端框架,使用方法其实是类似的
JSON不仅仅可以传输文本数据,二进制数据其实也是可以传输的,
比如我们在文件上传时,H5有提供将文件或图片转为Base64的功能
这样我们就可以使用JSON进行图片或文件的传输的
同样,音频、视频也可以这样处理,
唯一需要关注的就是传输数据量大小的问题了。
没错,非常简单,只有这几条语句。
<head>
<style>
</style>
<script src="/static/js/jquery.min.js"></script>
<script>
//使用JQuery进行数据交互
function json_payload()
{
data = {
"cmd":"append_user",
"username":"user111",
"password":"123456",
}
$.ajax({
type: "POST",
url: "/api",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
success: function (resp) {
console.log(resp)
alert(resp.cmd+"\n\n"+resp.username)
},
error: function (err) {
alert("error")
}
})
}
</script>
</head>
<body>
JSON示例
<hr>
<input type="button" value="JSON提交信息" onclick="json_payload()">
</body>
func InitWebApi() {
log.Println("GuYu GoLang ....")
webServer := gin.Default()
//注册静态文件目录
webServer.Static("/static", "./static")
//注册模板目录
webServer.LoadHTMLGlob("tpl/*")
webServer.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index_jquery_json.html", gin.H{})
})
webServer.POST("/api", func(c *gin.Context) {
data, err := c.GetRawData()
if err != nil {
fmt.Println(err.Error())
return
}
payload := string(data)
json := JsonToMap(payload)
cmd := json["cmd"]
resp := gin.H{
"cmd": cmd,
"username": json["username"],
"tick": payload,
}
c.JSON(200, resp)
})
webServer.Run(":8090")
}
使用Postman进行数据接口调试
图片
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。