没有必要将 尸体 与 尸体
分开编组
HttpResp。而是将
Body字段的类型更改为
interface{},然后将该字段设置为与json字符串相对的具体类型的任何值,例如[]Article,然后将resp编组一次。
type HttpResp struct{ Status int `json:"status"` Description string `json:"description"` Body interface{} `json:"body"`}其余的…
package mainimport ( "encoding/json" "net/http" "log")type Article struct{ Id string `json:"id"` Title string `json:"title"` Body string `json:"body"` Description string `json:"description"`}func AllArticles(w http.ResponseWriter, r *http.Request){ log.Print("/articles - GET") db := connect() defer db.Close() var articles []Article results, err := db.Query("SELECt * FROM Articles") if err != nil{ log.Print(err) return } for results.Next(){ var article Article err = results.Scan(&article.Title, &article.Description, &article.Body, &article.Id) if err != nil{ serr, _ := json.Marshal(err) json.NewEnprer(w).Enpre(HttpResp{Status: 500, Description: "Failed to retrieve all articles", Body: string(serr)}) } articles = append(articles, article) } w.Header().Set("Content-Type", "application/json") json.NewEnprer(w).Enpre(HttpResp{Status: 200, Body: articles})}


