json - 服务器没有从远程 REST API 获取所有 JSON

标签 json api http go server

我的 Go 服务器没有从远程 API 检索所有 JSON 数据

我什至尝试创建一个自定义 http.Client 来发出请求...但它仍然无法检索 全部 JSON数据,甚至尝试延长各自的超时时间

这是我的代码:

var netTransport = &http.Transport{
        Dial: (&net.Dialer{
            Timeout: 50 * time.Second,
        }).Dial,
        TLSHandshakeTimeout: 50 * time.Second,
    }
    var netClient = &http.Client{
        Timeout:   time.Second * 40,
        Transport: netTransport,
    }
    res, getErr := netClient.Get(url)

    if getErr != nil {
        log.Fatal(getErr)
    }
    data := JSONData{}
    if err := json.NewDecoder(res.Body).Decode(&data); err != nil {
        log.Fatal(err)
    }
    data.Username = user
    fmt.Println(data)

JSONData 定义如下:
type Owner struct {
    Login string
}

// Item is the single repository data structure
type Item struct {
    ID          int
    Name        string
    FullName    string `json:"full_name"`
    Owner       Owner
    Description string
    CreatedAt   string `json:"created_at"`
}

// JSONData contains the GitHub API response
type JSONData struct {
    Count    int `json:"total_count"`
    Username string
    Items    []Item
}

最佳答案

JSONData需要定义 JSON 标签。

type Owner struct {
    Login string `json:"login"`
}

// Item is the single repository data structure
type Item struct {
    ID          int    `json:"id"`
    Name        string `json:"name"`
    FullName    string `json:"full_name"`
    Owner       Owner  `json:"owner"`
    Description string `json:"description"`
    CreatedAt   string `json:"created_at"`
}

// JSONData contains the GitHub API response
type JSONData struct {
    Count    int    `json:"total_count"`
    Username string `json:"username"`
    Items    []Item `json:"items"`
}

如果未指定标签,则按原样使用名称:

type Owner struct {
  Login string
}

这将被编码(并相应地解码)成类似的:

{"Login": "some login"}

关于json - 服务器没有从远程 REST API 获取所有 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59529411/

相关文章:

javascript - 使用php将ajax发送的数据写入带有数组的json文件

json - 在一个盒子里休息后端?

json - CSE JSON API和Google Analytics(分析)

api - 如何从Token获取Google用户信息

api - 在 API 网关/Lambda 上处理多部分/表单数据

json - 将 JSON 字符串转换为 Erlang 记录的库

python - 我正在尝试发送 HTTP 帖子,但 json 返回 "message":"Unauthorized"

java - 从 HttpPost Android 中提取 URL

java - 从 Android 应用程序登录使用 HTTP 基本身份验证的网站

http - 从 WCF 服务返回 401