在 Python 中,从 JSON 对象中提取单个值非常简单,无需定义结构。另一方面,Go 需要声明一个结构来表示预期的 JSON 结构。然而,这种方法对于仅获取特定值来说可能看起来很麻烦。
您可以利用标准 json 包将 JSON 解码为映射,而不是创建专用结构[字符串]接口{}。这允许您通过键访问值:
import ( "encoding/json" "fmt" ) 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中文网其他相关文章!