Takamoto has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
I am trying to parse the json response I get with:
$query='AA Tauri'; my $url = 'https://en.wikipedia.org/w/api.php?format=json&action=query +&prop=extracts&exintro&explaintext&redirects=1&titles=' . $query; my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new(GET => $url); my $response = $ua->request($req); if ($response->is_success) { print "SUCCESS!\n"; my $json_text= $response->content; my $decoded_json = decode_json( $json_text ); print Dumper $decoded_json; }
The result of Dumper is:
$VAR1 = { 'query' => { 'pages' => { '25111030' => { 'pageid' => 251110 +30, 'extract' => 'AA T +auri is a young star in the constellation of Taurus, located in the y +oung Taurus-Auriga Star Forming Region, roughly at 460 light years aw +ay from the Sun.', 'title' => 'AA Tau +ri', 'ns' => 0 } } }, 'batchcomplete' => '' };
I get a hash of hashes (never been good with...). I need to put into a scalar the value of 'extract'. Normally I go directly to a particular value given the keys that define it, something like:
my $val = $decoded_json {query}{pages}{XXX}{extract};
But the value in XXX is always different. How can I get the value of 'extract'?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: hash of hashes parsing problem
by tybalt89 (Monsignor) on Dec 29, 2018 at 23:27 UTC | |
by ikegami (Patriarch) on Dec 30, 2018 at 00:00 UTC | |
|
Re: hash of hashes parsing problem
by Takamoto (Monk) on Dec 30, 2018 at 08:58 UTC |