golang收发http请求中json字符串的解析

最近在写golang的聊天室,发现个问题,也就是解析前端传过来的json字符串的时候该怎么解析,下面为个人简要笔记。

服务端接收客户端请求的json字符串

请求json字符串解析也很简单,主要是调用json包中的NewDecoder方法去做解析,可以直接解析http请求的body。

func main()  {
   // 监听请求
   http.HandleFunc("/test",getJsonTest)
   err := http.ListenAndServe(":8000",nil)
   if err != nil{
      log.Println("http server listen :",err)
   }
}

func getJsonTest(w http.ResponseWriter,r *http.Request){
   err := r.ParseForm()
   if err != nil {
      log.Fatal("parse form error ",err)
   }
   // 初始化请求变量结构
   formData := make(map[string]interface{})
   // 调用json包的解析,解析请求body
   json.NewDecoder(r.Body).Decode(&formData)
   for key,value := range formData{
      log.Println("key:",key," => value :",value)
   }
}
复制代码

用httpie简要测试下,就可看到控制台打印出对应的数据,下面为测试示例图片。

服务端发送json字符串给前端

上述已经说明了解析json字符串所使用的工具,那么如何返回json字符串给前端呢,其实也是一样,用json包中的NewEncode去解析然后发送给客户端即可,下面为示例代码。

func getJsonTest(w http.ResponseWriter,r *http.Request){
   err := r.ParseForm()
   if err != nil {
      log.Fatal("parse form error ",err)
   }
   // 初始化请求变量结构
   formData := make(map[string]interface{})
   // 调用json包的解析,解析请求body
   json.NewDecoder(r.Body).Decode(&formData)
   for key,value := range formData{
      log.Println("key:",key," => value :",value)
   }
   // 返回json字符串给客户端
   w.Header().Set("Content-Type","application/json")
   json.NewEncoder(w).Encode(formData)
}
复制代码

同样由httpie测试之后可以看出数据的返回。

好了,暂时只做这些笔记,如果有问题,希望大家提出意见,一起成长。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值