返回一个简单的 JSON 响应

Har*_*lue 2 json go

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

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

app.get('/status', (req, res) => res.json({status: 'OK'}))
Run Code Online (Sandbox Code Playgroud)

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

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

我正在尝试这样的事情

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

但这显然行不通。

Fli*_*mzy 5

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

w.Write([]byte(`{"status":"OK"}`))
Run Code Online (Sandbox Code Playgroud)

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

json.NewEncoder(w).Encode(map[string]string{"status": "OK"})
Run Code Online (Sandbox Code Playgroud)