Go 中高效的JSON 單值解析
在Python 中,從JSON 物件存取特定值非常簡單,如提供的所示例如:
res = res.json() return res['results'][0]
但是,Go 需要更詳細的方法來聲明結構體並將JSON解組到其中:
type Quotes struct { AskPrice string `json:"ask_price"` } quote := new(Quotes) errJson := json.Unmarshal(content, "e) if errJson != nil { return "nil", fmt.Errorf("cannot read json body: %v", errJson) }
為了在Go 中更簡單,請考慮將JSON 解碼為map[string]interface{} 並透過其鍵存取所需的值:
func main() { b := []byte(`{"ask_price":"1.0"}`) data := make(map[string]interface{}) err := json.Unmarshal(b, &data) if err != nil { panic(err) } if price, ok := data["ask_price"].(string); ok { fmt.Println(price) } else { panic("wrong type") } }
雖然映射提供了靈活性,但由於其顯式類型聲明,結構仍然更可取。它們透過消除類型斷言的需要來簡化程式碼。
以上是如何在 Go 中高效解析單一 JSON 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!