Based on Re^5: Parsing Array of arrays from json file this seems to "work":
(FWIW I'm not happy with the code though, YMMV)
use strict; use warnings; use Data::Dumper; use LWP::UserAgent; use JSON::PP; my $ua = LWP::UserAgent->new( ); $ua->agent("Mozilla"); my $segment = "Science | Research | Artificial Intelligence"; my $url='https://translate.googleapis.com/translate_a/single?client=gt +x&sl=en&tl=fr&dt=t&q=' . $segment; my $req = HTTP::Request->new(GET => $url); my $res = $ua->request($req); if ($res->is_success) { my $json_text= $res->content; #warn Dumper my $decoded_json = decode_json( $json_text ); my @decoded_json=@$decoded_json; my @records = @{$decoded_json[0]}; # <-- fixed derefrencing #warn Dumper \@records; foreach my $record (@records) { print Dumper $record; print "Translation for @$record[1] is @$record[0]\n"; } } else { print "\nError connecting to server\n"; }
OUTPUT
-*- mode: compilation; default-directory: "d:/tmp/pm/" -*- Compilation started at Sun Sep 12 12:57:45 C:/Strawberry/perl/bin\perl.exe -w d:/tmp/pm/google_translate.pl $VAR1 = [ 'Sciences | ', 'Science |', undef, undef, 3, undef, undef, [ [] ], [ [ [ 'f1ddc8227c19e618ac5e77c96270b0d5', 'en_fr_2021q1.md' ] ] ] ]; Translation for Science | is Sciences | $VAR1 = [ 'Recherche | ', 'Research |', undef, undef, 3, undef, undef, [ [] ], [ [ [ 'f1ddc8227c19e618ac5e77c96270b0d5', 'en_fr_2021q1.md' ] ] ] ]; Translation for Research | is Recherche | $VAR1 = [ 'Intelligence artificielle', 'Artificial Intelligence', undef, undef, 1 ]; Translation for Artificial Intelligence is Intelligence artificielle Compilation finished at Sun Sep 12 12:57:47
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
In reply to Re^5: Parsing Array of arrays from json file
by LanX
in thread Parsing Array of arrays from json file
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |