json - 使用 JSON 进行 HTTP 响应

标签 json go

<分区>

我是 Go 的新手,我正在尝试构建一个简单的 HTTP 服务器。但是我遇到了 JSON 响应的一些问题。我写了下面的代码,然后尝试 postman 发送一些 JSON 数据。但是,我的 postman 总是得到一个空响应,content-typetext/plain;字符集=utf-8。然后我在http://www.alexedwards.net/blog/golang-response-snippets#json中检查了一个样本.我复制并粘贴了示例,效果很好。但我看不出我的和 sample 有什么区别。有人可以帮忙吗?

package main

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

type ResponseCommands struct {
    key   string
    value bool
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":5432", nil)
}

func handler(rw http.ResponseWriter, req *http.Request) {
    responseBody := ResponseCommands{"BackOff", false}

    data, err := json.Marshal(responseBody)
    if err != nil {
        http.Error(rw, err.Error(), http.StatusInternalServerError)
        return
    }
    rw.WriteHeader(200)
    rw.Header().Set("Content-Type", "application/json")
    rw.Write(data)
}

最佳答案

主要区别在于结构中的变量是公共(public)的(导出的)

type Profile struct {
  Name    string
  Hobbies []string
}

在您的情况下,它们不是(小写)。

type ResponseCommands struct {
    key   string
    value bool
}

参见“Lowercase JSON key names with JSON Marshal in Go”。

关于json - 使用 JSON 进行 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627602/

相关文章:

go - 从列表中删除客户端会终止其他连接

javascript - 是否有一个库可用于使用 JSON 输入绘制数据流图

javascript - 加载 JQuery 后网页内容不显示

javascript - 如果变量具有空值则获取 NaN

jquery - 使用 jQuery Flot 绘制外部数据

Gorm加载相关数据

sql - Golang SQL包中的QueryRow和Exec有什么区别?

javascript - 获取网站访问者的IP地址,让他们无需登录即可访问网站

string - 如何在String方法中打印原始go struct

go - 将十六进制更改为字符串