2017-07-06 42 views
0

您好我是與編碼/ JSON golang工作,並返回與空json的錯誤:Golang編碼/ JSON馬歇爾加空

{"user_message":"Can't find any Query with those parameters","application_context":"GroupsRepository.GetGroupsByQuery: ApplicationError: UserMessage - Error querying database for many Groups. ApplicationContext - Groups.GetMany: pq: column \"refill_too_soon_gpi_digits\" does not exist"} null 

而且我馬歇爾認爲事情是這樣的:

func EncodeErrorResponse(w http.ResponseWriter, err error, status int) { 
    w.WriteHeader(http.StatusOK) 
    w.Header().Set("Content-Type", "application/json") 
    json.NewEncoder(w).Encode(err) 
} 

有人可以幫助我。

+0

查看引用的JSON輸出,它看起來像錯誤正在編碼正確,但在JSON之後輸出* null,表示單獨的寫入操作。是否有可能其他代碼(也許這個函數的調用者)正在寫這個輸出?另外請注意,您接受狀態碼但不使用它,您始終使用StatusOK;並且你忽略了'Encode'返回的錯誤。 – Adrian

+0

函數我在另一個函數中使用,但編碼返回爲空的錯誤,我不知道編碼/ json是否有問題,因爲與另一個結構它工作正常。 – llCastro

+0

編碼/ json沒有問題。調用'EncodeErrorResponse'的函數在調用它之後,正在向'ResponseWriter'寫入額外的輸出。 – Adrian

回答

0

看着引用的JSON輸出,它看起來像錯誤正在編碼正確,但在JSON之後輸出null,表示單獨的寫入操作。調用EncodeErrorResponse的函數在調用它之後正在將其他輸出寫入ResponseWriter。