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中文网其他相关文章!