Go 是一種非常流行的編程語言,可以輕松地處理與JSON交互的編程任務。 在此示例中,我們將看到如何讀取來自http請求的JSON 數據。
import ( "encoding/json" "net/http" ) type User struct { Username string `json:"username"` Email string `json:"email"` } func getUser(w http.ResponseWriter, r *http.Request) { decoder := json.NewDecoder(r.Body) var user User err := decoder.Decode(&user) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(user) }
在上面的代碼中,我們首先導入了 encoding/json 和 net/http包。 然后,我們定義了一個包含 Username 和 Email 字段的 User 結構體。 我們還定義了 getUser 函數,該函數使用 json.Decoder 從 http 請求中解碼 JSON 數據并填充 User 結構體。 最后,我們將 User 結構體編碼為JSON并將其發送回響應。
在運行此代碼之前,我們需要確保 http 請求中包含正確的 JSON 格式。 在下面的示例中,我們假設請求的 JSON 數據與 User 結構體的字段匹配。
curl -H "Content-Type: application/json" -XPOST -d '{"username": "john_doe", "email": "john@example.com"}' localhost:8080/user
要執行上面的命令,請確保您已在本地主機上運行了此代碼,并將端口號替換為您實際使用的端口號。
在Go中,讀取HTTP請求的JSON數據是一個簡單而直接的過程。 結合流暢的API和JSON解析,Go可用于創建高效的JSON服務。
上一篇c json 樹形解析
下一篇c json 生成多個