登录
首页 >  Golang >  Go问答

向浏览器发送“null”而不是“{}”

来源:stackoverflow

时间:2024-04-17 20:36:31 454浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《向浏览器发送“null”而不是“{}”》,聊聊,我们一起来看看吧!

问题内容

如果我这样做,我希望能够将 null 作为 json 发送到浏览器:

json.newencoder(w).encode(nil)

然后浏览器就会收到null。然而在这种情况下:

var nearby map[string]Nearby

// ...

func GetOne(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    item := nearby[params["id"]] // item could be nil?
    json.NewEncoder(w).Encode(item)
}

如果地图中不存在任何内容,则浏览器将收到 {},而不是 null...如果密钥不在地图中,有什么方法可以发送 null 吗?


解决方案


如问题评论中所示,映射值是一个结构。结构体不能具有值 nil

如果意图是在映射中没有值时写入 null,则在这种情况下显式写入 null

item, ok := nearby[params["id"]]
if ok {
   json.NewEncoder(w).Encode(item)
} else {
   io.WriteString(w, "null")
   // Can also use json.NewEncoder(w).Encode(nil), but that involves more machinery.
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>