JSON 문자열 입력 첫 번째 키를 반환 : 나는 해시 단지 첫 번째 키 (현재 날짜)을 반환하려고하지만 그렇게 할 수 없었다 https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demodecode_json 및 해시
합니다. 내 코드는 다음과 같습니다.
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use Data::Dumper;
use JSON;
my $html = get("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=AMD&apikey=CMDPTEHVYH7W5VSZ");
my $decoded = decode_json($html);
my ($open) = $decoded->{'Time Series (Daily)'}->[0]->{'1. open'};
"ARRAY 참조가 아닙니다."계속 연구하고 혼란스러워했습니다.
나는 내가 무엇을 아래 코드로 직접 원하는 액세스 할 수 있지만, 난 그냥 첫 번째 결과 또는 현재 날짜에 액세스하려면 :
my ($open) = $decoded->{'Time Series (Daily)'};
print Dumper($open);
: 또한
my ($open) = $decoded->{'Time Series (Daily)'}{'2017-12-20'}{'1. open'};
을 나는 같은 것을 할 경우
출력은 다음과 같습니다 :
$VAR1 = {
'2017-09-07' => {
'1. open' => '12.8400',
'5. volume' => '35467788',
'2. high' => '12.9400',
'4. close' => '12.6300',
'3. low' => '12.6000'
},
'2017-11-15' => {
'3. low' => '10.7700',
'4. close' => '11.0700',
'2. high' => '11.1300',
'5. volume' => '33326871',
'1. open' => '11.0100'
},
'2017-11-30' => {
'1. open' => '10.8700',
'2. high' => '11.0300',
'5. volume' => '43101899',
'3. low' => '10.7600',
'4. close' => '10.8900'
},
아무런 도움을 주셔서 감사합니다. 비.
해시가 정렬되지 않았으므로 "첫 번째 키"가 없으므로 '-> [0]'을 할 수 없습니다. 아마도 최소한의 문자열을 찾아서 원하는 키를 찾아야 만 할 것입니다. – ysth