Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

regarding google currency API

by upaksh (Novice)
on Sep 18, 2012 at 06:30 UTC ( #994193=perlquestion: print w/ replies, xml ) Need Help??
upaksh has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I want to write a perl script which can access google currency API and parse the JSON response to get the exchange rates. eg. http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD The resonse is JSON object like {lhs: "1 British pound",rhs: "1.6224 U.S. dollars",error: "",icc: true} so, the programme should be able to call the url and parse the object. Any views would be appreciated

Comment on regarding google currency API
Re: regarding google currency API
by choroba (Abbot) on Sep 18, 2012 at 06:58 UTC
    What have you tried? Which part of it does not work?

    You might be interested in reading JSON.

    لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: regarding google currency API
by tobyink (Abbot) on Sep 18, 2012 at 07:17 UTC

    The URL you provided does not provide valid JSON, so you'll have trouble feeding it to any of the standard Perl JSON modules.

    Ingy's recent work on JSONY seems to be able to handle it though:

    use 5.010; use HTTP::Tiny; use JSONY v0.0.3 qw(decode_jsony); my $in_currency = 'GBP'; my $out_currency = 'USD'; # Construct URL from currency codes my $url = sprintf( 'http://www.google.com/ig/calculator?hl=en&q=1%s=?%s', $in_currency, $out_currency, ); # Fetch URL and deal with HTTP errors my $results = HTTP::Tiny->new->get($url); die $results->{reason} unless $results->{success}; # Decode cruddy broken JSON and deal with decoding errors my $data = decode_jsony($results->{content}); die $data->{error} if $data->{error}; # Print the result say $data->{rhs};
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
Re: regarding google currency API
by Anonymous Monk on Sep 18, 2012 at 07:18 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://994193]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (15)
As of 2014-12-18 14:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (56 votes), past polls