Go語言可以很方便地將函數返回的數據轉化成JSON格式,這為我們在前后端交互的過程中提供了很大的便利。下面我們就來看一下如何使用Go函數返回JSON數據。
import ( "encoding/json" "net/http" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func myHandler(w http.ResponseWriter, r *http.Request) { user := User{Name: "Tom", Age: 18} js, err := json.Marshal(user) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") w.Write(js) }
我們首先定義了一個結構體User,其中Name和Age分別是用戶的姓名和年齡。接著,我們定義了一個myHandler函數,該函數將我們定義好的User數據轉化成JSON格式,并將其返回到瀏覽器中。
在myHandler函數中,我們首先創建了一個User對象,然后使用json.Marshal函數將其轉化為JSON格式。如果轉化失敗,我們就使用http.Error函數將錯誤信息返回到瀏覽器中。最后,我們將Content-Type設置為application/json,并將JSON數據寫入到ResponseWriter中。
現在我們只需要將myHandler函數和對應的URL進行綁定即可,如下所示:
http.HandleFunc("/user", myHandler) http.ListenAndServe(":8080", nil)
我們只需要在瀏覽器中輸入http://localhost:8080/user,就可以得到我們定義好的User數據了,它的JSON格式如下:
{"name":"Tom","age":18}
是不是很簡單呢?使用Go函數返回JSON數據就是這么方便。