首页 > 解决方案 > 返回一个简单的 JSON 响应

问题描述

我目前正在将 Express API 转移到 Golang 实现中。

在 Express 中,如果我想返回一个简单的临时 json 响应,我可以这样做

app.get('/status', (req, res) => res.json({status: 'OK'}))

但是,我很难在 Go 中理解这一点。

我需要为这个简单的响应创建一个结构吗?

我正在尝试这样的事情

func getStatus(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode({status: "OK"})
}

但这显然行不通。

标签: jsongo

解决方案


对于这么简单的事情,您可以发送一个字符串:

w.Write([]byte(`{"status":"OK"}`))

但是要回答您更广泛的问题,您需要用 Go 表示法定义您的对象。这可以很简单:

json.NewEncoder(w).Encode(map[string]string{"status": "OK"})

推荐阅读