{
"quoteResponse": {
"error": null,
"result": [
{
"ask": 117.27,
"askSize": 8,
"averageDailyVolume10Day": 233119800,
"averageDailyVolume3Month": 170533131,
"bid": 117.25,
"bidSize": 22,
"bookValue": 4.218,
"currency": "USD",
"displayName": "Apple",
"dividendDate": 1597276800,
"earningsTimestamp": 1596126600,
"earningsTimestampEnd": 1604318400,
"earningsTimestampStart": 1603882740,
"epsCurrentYear": 3.23,
"epsForward": 3.86,
"epsTrailingTwelveMonths": 3.296,
"esgPopulated": false,
"exchange": "NMS",
"exchangeDataDelayedBy": 0,
"exchangeTimezoneName": "America/New_York",
"exchangeTimezoneShortName": "EDT",
"fiftyDayAverage": 112.823425,
"fiftyDayAverageChange": 4.4965744,
"fiftyDayAverageChangePercent": 0.03985497,
"fiftyTwoWeekHigh": 137.98,
"fiftyTwoWeekHighChange": -20.659996,
"fiftyTwoWeekHighChangePercent": -0.14973181,
"fiftyTwoWeekLow": 53.1525,
"fiftyTwoWeekLowChange": 64.167496,
"fiftyTwoWeekLowChangePercent": 1.2072338,
"fiftyTwoWeekRange": "53.1525 - 137.98",
"financialCurrency": "USD",
"firstTradeDateMilliseconds": 345479400000,
"forwardPE": 30.393784,
"fullExchangeName": "NasdaqGS",
"gmtOffSetMilliseconds": -14400000,
"language": "en-US",
"longName": "Apple Inc.",
"market": "us_market",
"marketCap": 2006465249280,
"marketState": "POST",
"messageBoardId": "finmb_24937",
"postMarketChange": -0.25,
"postMarketChangePercent": -0.2130924,
"postMarketPrice": 117.07,
"postMarketTime": 1599686591,
"priceEpsCurrentYear": 36.32198,
"priceHint": 2,
"priceToBook": 27.81413,
"quoteSourceName": "Nasdaq Real Time Price",
"quoteType": "EQUITY",
"region": "US",
"regularMarketChange": 4.5,
"regularMarketChangePercent": 3.9886546,
"regularMarketDayHigh": 119.14,
"regularMarketDayLow": 115.26,
"regularMarketDayRange": "115.26 - 119.14",
"regularMarketOpen": 117.26,
"regularMarketPreviousClose": 112.82,
"regularMarketPrice": 117.32,
"regularMarketTime": 1599681602,
"regularMarketVolume": 168404235,
"sharesOutstanding": 17102499840,
"shortName": "Apple Inc.",
"sourceInterval": 15,
"symbol": "AAPL",
"tradeable": false,
"trailingAnnualDividendRate": 0.782,
"trailingAnnualDividendYield": 0.0069313953,
"trailingPE": 35.59466,
"triggerable": true,
"twoHundredDayAverage": 85.99835,
"twoHundredDayAverageChange": 31.321648,
"twoHundredDayAverageChangePercent": 0.3642122
},
{
"ask": 211.63,
"askSize": 9,
"averageDailyVolume10Day": 43250000,
"averageDailyVolume3Month": 35562815,
"bid": 211.25,
"bidSize": 9,
"bookValue": 15.626,
"currency": "USD",
"displayName": "Microsoft",
"dividendDate": 1599696000,
"earningsTimestamp": 1595434164,
"earningsTimestampEnd": 1603742400,
"earningsTimestampStart": 1603310400,
"epsCurrentYear": 6.46,
"epsForward": 7.34,
"epsTrailingTwelveMonths": 5.76,
"esgPopulated": false,
"exchange": "NMS",
"exchangeDataDelayedBy": 0,
"exchangeTimezoneName": "America/New_York",
"exchangeTimezoneShortName": "EDT",
"fiftyDayAverage": 212.50658,
"fiftyDayAverageChange": -1.2165833,
"fiftyDayAverageChangePercent": -0.0057249204,
"fiftyTwoWeekHigh": 232.86,
"fiftyTwoWeekHighChange": -21.570007,
"fiftyTwoWeekHighChangePercent": -0.092630796,
"fiftyTwoWeekLow": 132.52,
"fiftyTwoWeekLowChange": 78.76999,
"fiftyTwoWeekLowChangePercent": 0.59440076,
"fiftyTwoWeekRange": "132.52 - 232.86",
"financialCurrency": "USD",
"firstTradeDateMilliseconds": 511108200000,
"forwardPE": 28.786102,
"fullExchangeName": "NasdaqGS",
"gmtOffSetMilliseconds": -14400000,
"language": "en-US",
"longName": "Microsoft Corporation",
"market": "us_market",
"marketCap": 1598968692736,
"marketState": "POST",
"messageBoardId": "finmb_21835",
"postMarketChange": -61.5672,
"postMarketChangePercent": -29.13872,
"postMarketPrice": 149.7228,
"postMarketTime": 1599686588,
"priceEpsCurrentYear": 32.707428,
"priceHint": 2,
"priceToBook": 13.521694,
"quoteSourceName": "Nasdaq Real Time Price",
"quoteType": "EQUITY",
"region": "US",
"regularMarketChange": 8.62999,
"regularMarketChangePercent": 4.2583585,
"regularMarketDayHigh": 214.8399,
"regularMarketDayLow": 206.7,
"regularMarketDayRange": "206.7 - 214.8399",
"regularMarketOpen": 207.6,
"regularMarketPreviousClose": 202.66,
"regularMarketPrice": 211.29,
"regularMarketTime": 1599681601,
"regularMarketVolume": 43764495,
"sharesOutstanding": 7567649792,
"shortName": "Microsoft Corporation",
"sourceInterval": 15,
"symbol": "MSFT",
"tradeable": false,
"trailingAnnualDividendRate": 2.04,
"trailingAnnualDividendYield": 0.01006612,
"trailingPE": 36.68229,
"triggerable": true,
"twoHundredDayAverage": 186.7529,
"twoHundredDayAverageChange": 24.537094,
"twoHundredDayAverageChangePercent": 0.13138802
}
]
}
}
方法1
type Quote struct {
QuoteResponse struct {
Error interface{} `json:"error"`
Result []struct {
Ask float64 `json:"ask"`
AskSize int `json:"askSize"`
AverageDailyVolume10Day int `json:"averageDailyVolume10Day"`
AverageDailyVolume3Month int `json:"averageDailyVolume3Month"`
Bid float64 `json:"bid"`
BidSize int `json:"bidSize"`
BookValue float64 `json:"bookValue"`
Currency string `json:"currency"`
DisplayName string `json:"displayName"`
DividendDate int `json:"dividendDate"`
EarningsTimestamp int `json:"earningsTimestamp"`
EarningsTimestampEnd int `json:"earningsTimestampEnd"`
EarningsTimestampStart int `json:"earningsTimestampStart"`
EpsCurrentYear float64 `json:"epsCurrentYear"`
EpsForward float64 `json:"epsForward"`
EpsTrailingTwelveMonths float64 `json:"epsTrailingTwelveMonths"`
EsgPopulated bool `json:"esgPopulated"`
Exchange string `json:"exchange"`
ExchangeDataDelayedBy int `json:"exchangeDataDelayedBy"`
ExchangeTimezoneName string `json:"exchangeTimezoneName"`
ExchangeTimezoneShortName string `json:"exchangeTimezoneShortName"`
FiftyDayAverage float64 `json:"fiftyDayAverage"`
FiftyDayAverageChange float64 `json:"fiftyDayAverageChange"`
FiftyDayAverageChangePercent float64 `json:"fiftyDayAverageChangePercent"`
FiftyTwoWeekHigh float64 `json:"fiftyTwoWeekHigh"`
FiftyTwoWeekHighChange float64 `json:"fiftyTwoWeekHighChange"`
FiftyTwoWeekHighChangePercent float64 `json:"fiftyTwoWeekHighChangePercent"`
FiftyTwoWeekLow float64 `json:"fiftyTwoWeekLow"`
FiftyTwoWeekLowChange float64 `json:"fiftyTwoWeekLowChange"`
FiftyTwoWeekLowChangePercent float64 `json:"fiftyTwoWeekLowChangePercent"`
FiftyTwoWeekRange string `json:"fiftyTwoWeekRange"`
FinancialCurrency string `json:"financialCurrency"`
FirstTradeDateMilliseconds int64 `json:"firstTradeDateMilliseconds"`
ForwardPE float64 `json:"forwardPE"`
FullExchangeName string `json:"fullExchangeName"`
GmtOffSetMilliseconds int `json:"gmtOffSetMilliseconds"`
Language string `json:"language"`
LongName string `json:"longName"`
Market string `json:"market"`
MarketCap int64 `json:"marketCap"`
MarketState string `json:"marketState"`
MessageBoardID string `json:"messageBoardId"`
PostMarketChange float64 `json:"postMarketChange"`
PostMarketChangePercent float64 `json:"postMarketChangePercent"`
PostMarketPrice float64 `json:"postMarketPrice"`
PostMarketTime int `json:"postMarketTime"`
PriceEpsCurrentYear float64 `json:"priceEpsCurrentYear"`
PriceHint int `json:"priceHint"`
PriceToBook float64 `json:"priceToBook"`
QuoteSourceName string `json:"quoteSourceName"`
QuoteType string `json:"quoteType"`
Region string `json:"region"`
RegularMarketChange float64 `json:"regularMarketChange"`
RegularMarketChangePercent float64 `json:"regularMarketChangePercent"`
RegularMarketDayHigh float64 `json:"regularMarketDayHigh"`
RegularMarketDayLow float64 `json:"regularMarketDayLow"`
RegularMarketDayRange string `json:"regularMarketDayRange"`
RegularMarketOpen float64 `json:"regularMarketOpen"`
RegularMarketPreviousClose float64 `json:"regularMarketPreviousClose"`
RegularMarketPrice float64 `json:"regularMarketPrice"`
RegularMarketTime int `json:"regularMarketTime"`
RegularMarketVolume int `json:"regularMarketVolume"`
SharesOutstanding int64 `json:"sharesOutstanding"`
ShortName string `json:"shortName"`
SourceInterval int `json:"sourceInterval"`
Symbol string `json:"symbol"`
Tradeable bool `json:"tradeable"`
TrailingAnnualDividendRate float64 `json:"trailingAnnualDividendRate"`
TrailingAnnualDividendYield float64 `json:"trailingAnnualDividendYield"`
TrailingPE float64 `json:"trailingPE"`
Triggerable bool `json:"triggerable"`
TwoHundredDayAverage float64 `json:"twoHundredDayAverage"`
TwoHundredDayAverageChange float64 `json:"twoHundredDayAverageChange"`
TwoHundredDayAverageChangePercent float64 `json:"twoHundredDayAverageChangePercent"`
} `json:"result"`
} `json:"quoteResponse"`
}
方法2
type Quote struct {
QuoteResponse QuoteResponse `json:"quoteResponse"`
}
type QuoteResponse struct {
Error interface{} `json:"error"`
Result []Result `json:"result"`
}
type Result struct {
Ask float64 `json:"ask"`
AskSize int `json:"askSize"`
AverageDailyVolume10Day int `json:"averageDailyVolume10Day"`
AverageDailyVolume3Month int `json:"averageDailyVolume3Month"`
Bid float64 `json:"bid"`
BidSize int `json:"bidSize"`
BookValue float64 `json:"bookValue"`
Currency string `json:"currency"`
DisplayName string `json:"displayName"`
DividendDate int `json:"dividendDate"`
EarningsTimestamp int `json:"earningsTimestamp"`
EarningsTimestampEnd int `json:"earningsTimestampEnd"`
EarningsTimestampStart int `json:"earningsTimestampStart"`
EpsCurrentYear float64 `json:"epsCurrentYear"`
EpsForward float64 `json:"epsForward"`
EpsTrailingTwelveMonths float64 `json:"epsTrailingTwelveMonths"`
EsgPopulated bool `json:"esgPopulated"`
Exchange string `json:"exchange"`
ExchangeDataDelayedBy int `json:"exchangeDataDelayedBy"`
ExchangeTimezoneName string `json:"exchangeTimezoneName"`
ExchangeTimezoneShortName string `json:"exchangeTimezoneShortName"`
FiftyDayAverage float64 `json:"fiftyDayAverage"`
FiftyDayAverageChange float64 `json:"fiftyDayAverageChange"`
FiftyDayAverageChangePercent float64 `json:"fiftyDayAverageChangePercent"`
FiftyTwoWeekHigh float64 `json:"fiftyTwoWeekHigh"`
FiftyTwoWeekHighChange float64 `json:"fiftyTwoWeekHighChange"`
FiftyTwoWeekHighChangePercent float64 `json:"fiftyTwoWeekHighChangePercent"`
FiftyTwoWeekLow float64 `json:"fiftyTwoWeekLow"`
FiftyTwoWeekLowChange float64 `json:"fiftyTwoWeekLowChange"`
FiftyTwoWeekLowChangePercent float64 `json:"fiftyTwoWeekLowChangePercent"`
FiftyTwoWeekRange string `json:"fiftyTwoWeekRange"`
FinancialCurrency string `json:"financialCurrency"`
FirstTradeDateMilliseconds int64 `json:"firstTradeDateMilliseconds"`
ForwardPE float64 `json:"forwardPE"`
FullExchangeName string `json:"fullExchangeName"`
GmtOffSetMilliseconds int `json:"gmtOffSetMilliseconds"`
Language string `json:"language"`
LongName string `json:"longName"`
Market string `json:"market"`
MarketCap int64 `json:"marketCap"`
MarketState string `json:"marketState"`
MessageBoardID string `json:"messageBoardId"`
PostMarketChange float64 `json:"postMarketChange"`
PostMarketChangePercent float64 `json:"postMarketChangePercent"`
PostMarketPrice float64 `json:"postMarketPrice"`
PostMarketTime int `json:"postMarketTime"`
PriceEpsCurrentYear float64 `json:"priceEpsCurrentYear"`
PriceHint int `json:"priceHint"`
PriceToBook float64 `json:"priceToBook"`
QuoteSourceName string `json:"quoteSourceName"`
QuoteType string `json:"quoteType"`
Region string `json:"region"`
RegularMarketChange float64 `json:"regularMarketChange"`
RegularMarketChangePercent float64 `json:"regularMarketChangePercent"`
RegularMarketDayHigh float64 `json:"regularMarketDayHigh"`
RegularMarketDayLow float64 `json:"regularMarketDayLow"`
RegularMarketDayRange string `json:"regularMarketDayRange"`
RegularMarketOpen float64 `json:"regularMarketOpen"`
RegularMarketPreviousClose float64 `json:"regularMarketPreviousClose"`
RegularMarketPrice float64 `json:"regularMarketPrice"`
RegularMarketTime int `json:"regularMarketTime"`
RegularMarketVolume int `json:"regularMarketVolume"`
SharesOutstanding int64 `json:"sharesOutstanding"`
ShortName string `json:"shortName"`
SourceInterval int `json:"sourceInterval"`
Symbol string `json:"symbol"`
Tradeable bool `json:"tradeable"`
TrailingAnnualDividendRate float64 `json:"trailingAnnualDividendRate"`
TrailingAnnualDividendYield float64 `json:"trailingAnnualDividendYield"`
TrailingPE float64 `json:"trailingPE"`
Triggerable bool `json:"triggerable"`
TwoHundredDayAverage float64 `json:"twoHundredDayAverage"`
TwoHundredDayAverageChange float64 `json:"twoHundredDayAverageChange"`
TwoHundredDayAverageChangePercent float64 `json:"twoHundredDayAverageChangePercent"`
}
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"os"
)
type Quote struct {
QuoteResponse struct {
Error interface{} `json:"error"`
Result []struct {
Ask float64 `json:"ask"`
AskSize int `json:"askSize"`
AverageDailyVolume10Day int `json:"averageDailyVolume10Day"`
AverageDailyVolume3Month int `json:"averageDailyVolume3Month"`
Bid float64 `json:"bid"`
BidSize int `json:"bidSize"`
BookValue float64 `json:"bookValue"`
Currency string `json:"currency"`
DisplayName string `json:"displayName"`
DividendDate int `json:"dividendDate"`
EarningsTimestamp int `json:"earningsTimestamp"`
EarningsTimestampEnd int `json:"earningsTimestampEnd"`
EarningsTimestampStart int `json:"earningsTimestampStart"`
EpsCurrentYear float64 `json:"epsCurrentYear"`
EpsForward float64 `json:"epsForward"`
EpsTrailingTwelveMonths float64 `json:"epsTrailingTwelveMonths"`
EsgPopulated bool `json:"esgPopulated"`
Exchange string `json:"exchange"`
ExchangeDataDelayedBy int `json:"exchangeDataDelayedBy"`
ExchangeTimezoneName string `json:"exchangeTimezoneName"`
ExchangeTimezoneShortName string `json:"exchangeTimezoneShortName"`
FiftyDayAverage float64 `json:"fiftyDayAverage"`
FiftyDayAverageChange float64 `json:"fiftyDayAverageChange"`
FiftyDayAverageChangePercent float64 `json:"fiftyDayAverageChangePercent"`
FiftyTwoWeekHigh float64 `json:"fiftyTwoWeekHigh"`
FiftyTwoWeekHighChange float64 `json:"fiftyTwoWeekHighChange"`
FiftyTwoWeekHighChangePercent float64 `json:"fiftyTwoWeekHighChangePercent"`
FiftyTwoWeekLow float64 `json:"fiftyTwoWeekLow"`
FiftyTwoWeekLowChange float64 `json:"fiftyTwoWeekLowChange"`
FiftyTwoWeekLowChangePercent float64 `json:"fiftyTwoWeekLowChangePercent"`
FiftyTwoWeekRange string `json:"fiftyTwoWeekRange"`
FinancialCurrency string `json:"financialCurrency"`
FirstTradeDateMilliseconds int64 `json:"firstTradeDateMilliseconds"`
ForwardPE float64 `json:"forwardPE"`
FullExchangeName string `json:"fullExchangeName"`
GmtOffSetMilliseconds int `json:"gmtOffSetMilliseconds"`
Language string `json:"language"`
LongName string `json:"longName"`
Market string `json:"market"`
MarketCap int64 `json:"marketCap"`
MarketState string `json:"marketState"`
MessageBoardID string `json:"messageBoardId"`
PostMarketChange float64 `json:"postMarketChange"`
PostMarketChangePercent float64 `json:"postMarketChangePercent"`
PostMarketPrice float64 `json:"postMarketPrice"`
PostMarketTime int `json:"postMarketTime"`
PriceEpsCurrentYear float64 `json:"priceEpsCurrentYear"`
PriceHint int `json:"priceHint"`
PriceToBook float64 `json:"priceToBook"`
QuoteSourceName string `json:"quoteSourceName"`
QuoteType string `json:"quoteType"`
Region string `json:"region"`
RegularMarketChange float64 `json:"regularMarketChange"`
RegularMarketChangePercent float64 `json:"regularMarketChangePercent"`
RegularMarketDayHigh float64 `json:"regularMarketDayHigh"`
RegularMarketDayLow float64 `json:"regularMarketDayLow"`
RegularMarketDayRange string `json:"regularMarketDayRange"`
RegularMarketOpen float64 `json:"regularMarketOpen"`
RegularMarketPreviousClose float64 `json:"regularMarketPreviousClose"`
RegularMarketPrice float64 `json:"regularMarketPrice"`
RegularMarketTime int `json:"regularMarketTime"`
RegularMarketVolume int `json:"regularMarketVolume"`
SharesOutstanding int64 `json:"sharesOutstanding"`
ShortName string `json:"shortName"`
SourceInterval int `json:"sourceInterval"`
Symbol string `json:"symbol"`
Tradeable bool `json:"tradeable"`
TrailingAnnualDividendRate float64 `json:"trailingAnnualDividendRate"`
TrailingAnnualDividendYield float64 `json:"trailingAnnualDividendYield"`
TrailingPE float64 `json:"trailingPE"`
Triggerable bool `json:"triggerable"`
TwoHundredDayAverage float64 `json:"twoHundredDayAverage"`
TwoHundredDayAverageChange float64 `json:"twoHundredDayAverageChange"`
TwoHundredDayAverageChangePercent float64 `json:"twoHundredDayAverageChangePercent"`
} `json:"result"`
} `json:"quoteResponse"`
}
func main() {
file, err := ioutil.ReadFile("./test.json")
if err != nil {
log.Println("ReadError: ", err)
os.Exit(1)
}
var quote Quote
json.Unmarshal(file, "e)
fmt.Println("quoteの値すべてを出力")
fmt.Println(quote)
fmt.Println("Resultの1番目の配列のAskのみ取り出す")
fmt.Println(quote.QuoteResponse.Result[0].Ask)
}
quoteの値すべてを出力
{{<nil> [{117.27 8 233119800 170533131 117.25 22 4.218 USD Apple 1597276800 1596126600 1604318400 1603882740 3.23 3.86 3.296 false NMS 0 America/New_York EDT 112.823425 4.4965744 0.03985497 137.98 -20.659996 -0.14973181 53.1525 64.167496 1.2072338 53.1525 - 137.98 USD 345479400000 30.393784 NasdaqGS -14400000 en-US Apple Inc. us_market 2006465249280 POST finmb_24937 -0.25 -0.2130924 117.07 1599686591 36.32198 2 27.81413 Nasdaq Real Time Price EQUITY US 4.5 3.9886546 119.14 115.26 115.26 - 119.14 117.26 112.82 117.32 1599681602 168404235 17102499840 Apple Inc. 15 AAPL false 0.782 0.0069313953 35.59466 true 85.99835 31.321648 0.3642122} {211.63 9 43250000 35562815 211.25 9 15.626 USD Microsoft 1599696000 1595434164 1603742400 1603310400 6.46 7.34 5.76 false NMS 0 America/New_York EDT 212.50658 -1.2165833 -0.0057249204 232.86 -21.570007 -0.092630796 132.52 78.76999 0.59440076 132.52 - 232.86 USD 511108200000 28.786102 NasdaqGS -14400000 en-US Microsoft Corporation us_market 1598968692736 POST finmb_21835 -61.5672 -29.13872 149.7228 1599686588 32.707428 2 13.521694 Nasdaq Real Time Price EQUITY US 8.62999 4.2583585 214.8399 206.7 206.7 - 214.8399 207.6 202.66 211.29 1599681601 43764495 7567649792 Microsoft Corporation 15 MSFT false 2.04 0.01006612 36.68229 true 186.7529 24.537094 0.13138802}]}}
Resultの1番目の配列のAskのみ取り出す
117.27