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'?
In reply to hash of hashes parsing problem by Takamoto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |