区分JSON和其他错误

区分JSON和其他错误,json,go,error-handling,Json,Go,Error Handling,如何区分JSON错误(应引起恐慌)和发送响应引起的错误(应记录?编码/JSON包定义了它将返回的错误类型。因为你有, , 和 您可以检查Encode返回的错误类型是否属于这三种类型之一 如果响应不是很大,并且不依赖于按照json.Encoder协议发送多个json值,则可以单独使用和编写响应 示例代码中的“响应”发送到哪里?它发送到http.ResponseWriter。请使用gofmt。您的代码很难读取。对于仅采用JSON编码的匿名结构,使用map[string]接口{}将是一种更自然的数据类

如何区分JSON错误(应引起恐慌)和发送响应引起的错误(应记录?

编码/JSON包定义了它将返回的错误类型。因为你有, , 和

您可以检查
Encode
返回的错误类型是否属于这三种类型之一


如果响应不是很大,并且不依赖于按照
json.Encoder
协议发送多个json值,则可以单独使用和编写响应

示例代码中的“响应”发送到哪里?它发送到
http.ResponseWriter
。请使用
gofmt
。您的代码很难读取。对于仅采用JSON编码的匿名结构,使用
map[string]接口{}
将是一种更自然的数据类型。
enc := json.NewEncoder(w)
err := enc.Encode(struct {
    Method    string        `json:"method"`
    Results   []interface{} `json:"results"`
    CacheTime int           `json:"cache_time"`
}{Method: answerInlineQueryMethod, Results: results, CacheTime: 0})
if err != nil {
    log.Printf("failed to answer to inline query: %s", err)
}