我在解码 JSON 响应时遇到问题。我已经尝试解决这个问题几个星期,但无法在线找到有效的解决方案。
这是我得到响应的 Go 代码:
package main
import (
"fmt"
"time"
"strconv"
"encoding/json"
"net/http"
"io"
)
const (
binanceUrl_0 = "https://api.binance.com"
binanceUrl_1 = "https://api1.binance.com"
binanceUrl_2 = "https://api2.binance.com"
binanceUrl_3 = "https://api3.binance.com"
//select which url to use
binanceUrl = binanceUrl_0
binance_GetServerTime = binanceUrl + "/api/v3/time"
binance_Ping = binanceUrl + "/api/v3/ping"
binance_GetExhangeInfo = binanceUrl + "/api/v3/exchangeInfo"
binance_GetExhangeInfo_Symbol = binanceUrl + "/api/v3/exchangeInfo?symbol=BNBBTC"
binance_GetKlineData = binanceUrl + "/api/v1/klines"
)
type Binance_klines struct {
OpenTime int64
open float32
high float32
low float32
close float32
volume float32
CloseTime int64
QuoteVolume float32
NumTrades int64
TakerBaseVolume float32
TakerQuoteVolume float32
}
这是我得到的响应(从字节转换为字符串):
[[1664277480000,"20980.42000000","20984.06000000","20966.57000000","20970.14000000","6.10441000",1664277539999,"128041.93403330",142,"2.97844000","62486.29173860","0"],[1664277540000,"20969.14000000","20976.08000000","20955.69000000","20970.15000000","3.17365000",1664277599999,"66548.64583140",88,"2.39827000","50292.47196580","0"],[1664277600000,"20970.15000000","20970.15000000","20970.15000000","20970.15000000","0.00000000",1664277659999,"0.00000000",0,"0.00000000","0.00000000","0"]]
我的问题是,我做错了什么?当我使用像https://mholt.github.io/json-to-go/这样的工具时,它要我制作一个 [][]interface{}。但是在我的 for 循环中,您可以看到它打印了一个(在我看来)一个有效的:[]接口{},但我无法将它转换为 Binance_Klines 类型的结构。此行有问题吗:
kline = (to_parse).(Binance_klines)
或者我只是误会了什么?我需要更改什么才能使用类型断言?还是立即将其解码为正确的结构?
跃然一笑
青春有我
相关分类