2 回答
TA贡献1712条经验 获得超3个赞
可以解码成a map[string]interface{},然后按键获取元素。
data := make(map[string]interface{})
err := json.Unmarshal(content, &data)
if err != nil {
return nil, err
}
price, ok := data["ask_price"].(string); !ok {
// ask_price is not a string
return nil, errors.New("wrong type")
}
// Use price as you wish
结构通常是首选,因为它们对类型更明确。您只需要在您关心的 JSON 中声明字段,并且您不需要像使用地图那样键入断言值(编码/json 隐式处理)。
TA贡献1842条经验 获得超12个赞
尝试fastjson或jsonparser。jsonparser针对必须选择单个 JSON 字段fastjson的情况进行了优化,而针对必须选择多个不相关的 JSON 字段的情况进行了优化。
下面是一个示例代码fastjson:
var p fastjson.Parser
v, err := p.Parse(content)
if err != nil {
log.Fatal(err)
}
// obtain v["ask_price"] as float64
price := v.GetFloat64("ask_price")
// obtain v["results"][0] as generic JSON value
result0 := v.Get("results", "0")
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报