登录
首页 >  Golang >  Go问答

解析golang中的http响应体为JSON的方法

来源:stackoverflow

时间:2024-03-12 20:00:27 404浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《解析golang中的http响应体为JSON的方法》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我收到一个响应正文。正文的格式如下:

[
    {
       "id":1,
       "name":"111" 
    },
    {
       "id":2,
       "name":"222" 
    }
  ]

我想将body解析为json结构,我的代码如下:

type Info struct {
      Id uint32 `json:id`
      Name string `json:name`
  }

  type Response struct {
      infos []Info
  }

  v := &Response{}
  data, err := ioutil.ReadAll(response.Body)
  if err := json.Unmarshal(data, v); err != nil {
      log.Fatalf("Parse response failed, reason: %v \n", err)
  }

总是报错:cannot unmarshal array into go value of type xxx,有人可以帮忙吗?


解决方案


实际上,我在谷歌搜索入门级 go 问题时偶然发现了这个问题,所以我想我应该留言:

package main

import (
        "encoding/json"
        "fmt"
        "net/http"
)

func main() {
        url := "https://skishore.github.com/inkstone/all.json"

        resp, err := http.Get(url)
        if err != nil {
                panic(err)
        }
        defer resp.Body.Close()

        var j interface{}
        err = json.NewDecoder(resp.Body).Decode(&j)
        if err != nil {
                panic(err)
        }
        fmt.Printf("%s", j)
}

这会下载一个示例 json url,在事先不了解其内容的情况下对其进行解码并打印到 stdout。请记住,最好实际分配某种类型。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>