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/





免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。