在 Go 中打印 JSON 文件中的值

我正在用 Go 制作一个货币转换器,它下载一个 JSON 文件,然后读取它以打印当前的货币汇率。我无法理解如何打印该值,我知道我必须使用 Unmarshal 但我不明白如何使用它。


例如,我想打印1.4075JSON 文件中的值。


这是 JSON 文件(这是从这里提取的):


{"base":"GBP","date":"2016-04-08","rates":{"USD":1.4075}}

这是我到目前为止所做的。


package main


import(

  "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)

  }

}


慕码人8056858
浏览 121回答 1
1回答

慕码人2483693

将响应解码为与响应形状匹配的类型。例如: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")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go