2 回答

TA貢獻1712條經(jīng)驗 獲得超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
結(jié)構(gòu)通常是首選,因為它們對類型更明確。您只需要在您關(guān)心的 JSON 中聲明字段,并且您不需要像使用地圖那樣鍵入斷言值(編碼/json 隱式處理)。

TA貢獻1842條經(jīng)驗 獲得超13個贊
嘗試fastjson或jsonparser。jsonparser針對必須選擇單個 JSON 字段fastjson的情況進行了優(yōu)化,而針對必須選擇多個不相關(guān)的 JSON 字段的情況進行了優(yōu)化。
下面是一個示例代碼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 關(guān)注
- 161 瀏覽
添加回答
舉報