我有以下JSON数据:
[
{
"id": "bitcoin",
"name": "Bitcoin",
"symbol": "BTC",
"rank": "1",
"price_usd": "960.094",
"price_btc": "1.0",
"24h_volume_usd": "438149000.0",
"market_cap_usd": "15587054083.0",
"available_supply": "16234925.0",
"total_supply": "16234925.0",
"percent_change_1h": "-0.76",
"percent_change_24h": "-7.78",
"percent_change_7d": "-14.39",
"last_updated": "1490393946"
}
]
我有两个结构:
type Valute struct {
Id string `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
}
type Currency struct {
Result []Valute
}
我想解析这个调用返回的数组:
resp, err := http.Get("https://api.coinmarketcap.com/v1/ticker/?limit=1")
defer resp.Body.Close()
v := Currency{}
body, err := ioutil.ReadAll(resp.Body)
json.Unmarshal(body, &v)
但它对我不起作用。货币是空的。
它适用于数组:
var valutes []Valute
json.Unmarshal(body, &valutes)
但我想使用结构。
答案 0 :(得分:3)
您的Currency结构只需实现json.Unmarshaler界面。
Send_button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if(edit.getText.equals(""))
{
edit.setError("Please provide user name")
}
else
{
//do your further activity
}
}
});
答案 1 :(得分:2)
您也可以更改为json.Unmarshal(body, &v.Result)