我正在用 Go 制作一个货币转换器,它下载一个 JSON 文件,然后读取它以打印当前的货币汇率。我无法理解如何打印该值,我知道我必须使用 Unmarshal 但我不明白如何使用它。例如,我想打印1.4075JSON 文件中的值。这是 JSON 文件(这是从这里提取的):{"base":"GBP","date":"2016-04-08","rates":{"USD":1.4075}}这是我到目前为止所做的。package mainimport( "encoding/json" "fmt" "io/ioutil")func main(){ fromCurrency:="GBP" toCurrency:="USD" out, err := os.Create("latest.json") if err != nil{ fmt.Println("Error:", err) } defer out.Close() resp, err := http.Get("http://api.fixer.io/latest?base=" + fromCurrency + "&symbols=" + toCurrency) defer resp.Body.Close() _, err = io.Copy(out, resp.Body) if err!= nil{ fmt.Println("Error:", err) }}
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
将响应解码为与响应形状匹配的类型。例如:
var data struct {
Base string
Date string
Rates map[string]float64
}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
log.Fatal(err)
}
打印适当的值:
if r, ok := data.Rates["USD"]; ok {
log.Println("Rate", r)
} else {
log.Println("no rate")
}
- 1 回答
- 0 关注
- 120 浏览
添加回答
举报
0/150
提交
取消