これが私の状況です。GETでサーバーにリクエストし、JSON形式を受け取りました。私はgo langを使用していて、それをbeego WebフレームワークのGo Langに実装しています。
だから私はこのようにそれを実装しました、
func (d *Tom) Get() {
//passengersFile, err := http.Get("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=KLMH2VFJ0LCFNOX5")
resp, err := http.Get("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=KLMH2VF0LCFNOX5")
if err != nil {
panic(err)
}
defer resp.Body.Close()
//fmt.Printf("%#v\n", resp)
dec := json.NewDecoder(resp.Body)
if dec == nil {
panic("Failed to start decoding JSON data")
}
json_map := make(map[string]interface{})
err = dec.Decode(&json_map)
for k, v := range json_map {
if k == "Meta Data"{
continue
}
fmt.Printf("key[%s] value[%s]\n", k, v)
}
if err != nil {
panic(err)
}
d.Data["json"] = &json_map
d.ServeJSON()
}
着信jsonの形式は次のようになります。
{
"Meta Data": {
"1. Information": "Intraday (1min) prices and volumes",
"2. Symbol": "MSFT",
"3. Last Refreshed": "2018-05-25 09:31:00",
"4. Interval": "1min",
"5. Output Size": "Compact",
"6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
"2018-05-24 14:23:00": {
"1. open": "98.1432",
"2. high": "98.1661",
"3. low": "98.1238",
"4. close": "98.1500",
"5. volume": "19106"
},
"2018-05-24 14:24:00": {
"1. open": "98.1500",
"2. high": "98.1700",
"3. low": "98.1400",
"4. close": "98.1650",
"5. volume": "18279"
},
"2018-05-24 14:25:00": {
"1. open": "98.1650",
"2. high": "98.2000",
"3. low": "98.1600",
"4. close": "98.1900",
"5. volume": "32085"
}
}
}
今、私は「時系列(1分)」値を取得し、「1。open」などの「日付時刻」値の各値を取得するためにそれらを繰り返したいと思っています。リクエストした人に返送してください。 どんな助けも大歓迎です!
関連した質問
- Go:JSONファイルの読み取りとJSON文字列の読み取り
- dataweave20を使用してエスケープされたjsonで文字列を解析する方法
- JavaScriptで大きなJSONストリームからアイテムを解析する方法は?
- 属性の値に対して異なるタイプをサポートしながら、JSONを構造体にアンマーシャリングします
- 私はイオンでjsonからキーと値を取得したい
- golangでインターフェイスを保存および取得する
- javascript(jsonオブジェクト)のlocalstorageのキー値を削除します
- PHPを使用してJSONでこのネストされた文字列を取得するにはどうすればよいですか?
- PHPでテーブルの日付を合計する方法
- GolangでJSONファイルを解析する
実際のJSONオブジェクトは非常に珍しいものであり、構造体に変換する簡単な方法には向いていません。
デモンストレーションでは、JSONをGo構造体に変換するための優れたユーティリティであるJSONGenを使用します。
当面の問題については、おそらく2段階のアプローチを使用します。
まず、ドキュメント全体を解析します(msft.jsonにAPI応答が含まれていると仮定):
問題は、datetimeをキーとする要素の繰り返しであり、おそらくリストとしてより適切にモデル化されるでしょう。とにかく、jqを使用して、関連する部分を解析し、別の構造体を生成できます。
これで、2つの構造体を1つに結合できます。 JSONを解析する完全なプログラムを次に示します 入力。
時系列をOHLCアイテムのマップとしてモデル化できます。解析が非常に簡単になりました:
whileは次のようなものを出力します:
...