### Bitflyerからの取得
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { uri := "https://api.bitflyer.com/v1/gethealth" req, _ := http.NewRequest("GET", uri, nil) client := new(http.Client) resp, _ := client.Do(req) defer resp.Body.Close() byteArray, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(byteArray)) }
$ go run gethealth.go
{“status”:”NORMAL”}
### Jsonの扱い
GoでJsonの受け取り方
1. 構造体を定義
type User struct { Name string `json:"name"` Age int `json:"age"` Job string `json:"job"` }
func main() { userStr := `{ "name": "tokumaru", "age": 20, "job": "student" }` var user User json.Unmarshal([]byte(userStr),&user) fmt.Println(user.Name) } // 構造体を定義 type User struct { Name string `json:"name"` Age int `json:"age"` Job string `json:"job"` }
$ go run test.go
tokumaru
↓上記をつなげる
### Bitcoinの価格を取得
bitcoinは小数点なので、float64で定義する。
表示する際は、fmt.Printf(“%.0f\n”,ticker.Ltp)として、小数点以下を切り捨てる
package main import ( "fmt" "encoding/json" "io/ioutil" "net/http" ) func main() { uri := "https://api.bitflyer.com/v1/getticker" req, _ := http.NewRequest("GET", uri, nil) client := new(http.Client) resp, _ := client.Do(req) defer resp.Body.Close() byteArray, _ := ioutil.ReadAll(resp.Body) var ticker Ticker json.Unmarshal([]byte(byteArray),&ticker) fmt.Printf("%.0f\n",ticker.Ltp) } // 構造体を定義 type Ticker struct { Code string `json:"product_code"` Ltp float64 `json:"ltp"` }
$ go run test.go
5014562
これをHTMLで表示させたい