# go解析复杂json数据
数据结构如图所示![](http://p83c9zj44.bkt.clouddn.com/%E5%A4%8D%E6%9D%82json%E6%95%B0%E6%8D%AE.png)
数据来源<https://api.coinmarketcap.com/v2/ticker/>
这里的问题是data的下一层,每一个标签都不一样,然后数据的最后一段结构还不一样
![](http://p83c9zj44.bkt.clouddn.com/%E5%A4%8D%E6%9D%82json%E6%95%B0%E6%8D%AE2.png)
不知道要怎么处理。
我只能想到下面的这种写法了,但是,这样只能一次解析一段数据,实际上数据还有好多段,尝试了使用map,但是用一个map[string]interface{},结果找不到数据,一条也解析不出来,只能求大家帮忙了,在这里先谢过大家,拜托了!!!
```go
type coinmarketcap struct {
DATA Data `json:"data"`
MD Metadata `json:"metadata"`
}
type Metadata struct {
Timestamp int `json:"timestamp"`
Num int `json:"num_cryptocurrencies"`
Error error `json:"error"`
}
type Coin struct {
Id int `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Website string `json:"website_slug"`
Rank int `json:"rank"`
Circulating float32 `json:"circulating_supply"`
Total float32 `json:"total_supply"`
QUotes Quotes `json:"quotes"`
Update int `json:"last_updated"`
}
type Data struct {
COin Coin `json:"1027"`
}
type Quotes struct {
USD Usd `json:"USD"`
}
type Usd struct {
Price float64 `json:"price"`
Volume float64 `json:"volume_24h"`
MarketCap float32 `json:"market_cap"`
Percent1h float32 `json:"percent_change_1h"`
Percent24h float32 `json:"percent_change_24h"`
Percent7d float32 `json:"percent_change_7d"`
}
```
```
type Data struct {
COin Coin `json:"1027"`
Coin2 Coin `json:"1"`
}
```
这样以此类推
#2
更多评论