【发布时间】:2022-08-16 16:38:28
【问题描述】:
我有一个想要打印 JSON 响应消息的 golang 程序:
func MyPluginFunction(w http.ResponseWriter, r *http.Request){
data := `{\"status\":\"false\",\"error\":\"bad request\"}`
w.Header().Set(\"Content-Type\", \"application/json\")
w.WriteHeader(http.StatusBadRequest )
json.NewEncoder(w).Encode(data)
}
然而,当我使用这个函数时,我得到了一个奇怪的 JSON 格式的格式。它看起来像这样:
\"{\\\"status\\\":\\\"false\\\",\\\"error\\\":\\\"bad request\\\"}\"
有没有办法让响应消息变成普通的 JSON,比如:
{
\"status\": \"false\",
\"error\": \"bad request\"
}
-
使用
json.NewEncoder.Encode编码字符串会将该字符串编码为有效的 JSON,无论其内容如何细绳.这就是您在输出中看到的内容。这是一个有效的 JSON细绳.要按原样发送data,请使用w.Write([]byte(data))。 -
或者使用
data作为 json.RawMessage - pkg.go.dev/encoding/json#RawMessage
标签: go