1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ID番号がkeyだった場合のStructの書き方

Posted at

ちょっとはまったので、メモ。

{
    "success": 1,
    "return": {
        "182": {
            "currency_pair": "btc_jpy",
            "action": "bid",
            "amount": 0.03,
            "price": 56000,
            "fee": 0,
            "your_action": "ask",
            "bonus": 1.6,
            "timestamp": 1402018713,
            "comment" : "demo"
        }
    }
}

上記のようなJSONデータをStructで取得したい。
しかしながら"182"の部分がID番号で固定では無いため、やり方がわからなかった。

type GetTradeAPIResponse struct {
	ApiResponse
	Return map[string]GetTradeResponse `json:"return"`
}

type ApiResponse struct {
	Success int    `json:"success"`
	Error   string `json:"error"`
}

type GetTradeResponse struct {
	CurrencyPair string  `json:"currency_pair"`
	Action       string  `json:"action"`
	Amount       float64 `json:"amount"`
	Price        float64 `json:"price"`
	Fee          float64 `json:"fee"`
	YourAction   string  `json:"your_action"`
	Bonus        float64 `json:"bonus"`
	Timestamp    int64     `json:"timestamp"`
	Comment      string  `json:"comment"`
}

上記のように定義することにより、取得ができました。

参考

Mapping JSON returned by REST API containing dynamic keys to a struct in Golang

以上です。
いいねやQiitaやTwitterのフォローいただけると励みになります!
他にも方法がありましたら、コメントお待ちしております。
宜しくお願いします〜

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?