为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中打印 JSON 文件中的值

在 Go 中打印 JSON 文件中的值

Go
慕码人8056858 2022-01-04 10:28:51
我正在用 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")

}


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信