Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^4: Help with JSON Module

by foggy3657 (Novice)
on Sep 08, 2012 at 08:51 UTC ( #992450=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Help with JSON Module
in thread Help with JSON Module

Thank you. However with the following code:

#!/usr/bin/perl use warnings; use strict; use WebService::Tesco::API; use JSON; use Data::Dumper my $tesco = WebService::Tesco::API->new( app_key => 'xxxxx', developer +_key => 'xxxx', debug => 1, ); my $result = $tesco->login({ email => 'xxxxx@yahoo.co.uk', password => + 'xxxxx', }); print "Scan Item...."; my $pn = <>; #Scan Bar Code chop ($pn); # +remove %OA from end of scan code my $code = $tesco->product_search({ searchtext => $pn, extendedinfo => + 'N' }); print Dumper ($code);

All I get is:

"WebService::Tesco::API=HASH(0xf66940)" is not exported by the Data::D +umper module Can't continue after import errors at tesco_json_dumper.pl line 9. BEGIN failed--compilation aborted at tesco_json_dumper.pl line 9.


Comment on Re^4: Help with JSON Module
Select or Download Code
Re^5: Help with JSON Module
by Corion (Pope) on Sep 08, 2012 at 09:07 UTC

    You are missing a semicolon after use Data::Dumper.

    The correct line should be

    use Data::Dumper; # ^ Note the added semicolon here

      Thank you. (How many times do I have to make that mistake.) Now I get

      $VAR1 = { 'StatusCode' => 0, 'Products' => [ { 'UnitType' => '100g', 'HealthierAlternativeProductId' => '', 'OfferPromotion' => "Price Drop Was \x{a3} +1.13 Now \x{a3}1.00 ", 'ProductId' => '254881114', 'EANBarcode' => '5000175411118', 'MaximumPurchaseQuantity' => 99, 'CheaperAlternativeProductId' => '', 'ProductType' => 'QuantityOnlyProduct', 'PriceDescription' => "\x{a3}1.41 each", 'UnitPrice' => '1.41', 'ImagePath' => 'http://img.tesco.com/Groce +ries/pi/118/5000175411118/IDShot_90x90.jpg', 'Price' => 1, 'BaseProductId' => '50043662', 'Name' => 'Oxo 12 Chicken Stock Cubes 71G' +, 'OfferValidity' => 'valid from 30/7/2012 u +ntil 9/9/2012', 'OfferLabelImagePath' => 'http://www.tesco +.com/Groceries/UIAssets/I/Sites/Retail/Superstore/Online/Product/pos/ +save.png' } ], 'TotalProductCount' => 1, 'PageNumber' => 0, 'TotalPageCount' => 1, 'StatusInfo' => 'Command Processed OK', 'PageProductCount' => 1 };

      Can you help with how to go on with the JSON decode statement?

      my $code = $tesco->product_search({ searchtext => $pn, extendedinfo => + 'N' });

      I am looking to create a variable that holds the value of "254881114" in this instance from ProductId.

      Best wishes - James.

        "Can you help with how to go on with the JSON decode statement?"

        I'm rather at a loss as to why you want to use JSON and what you want to decode.

        You've just demonstated that $tesco->product_search(...) returns Perl data (as a hashref) not JSON data.

        In your OP, you showed that you knew how to navigate through the data structure to get to the value you wanted:

        $data->{Products}[0]{ProductId}

        It seems to me that all you need is:

        my $data = $tesco->product_search(...); my $prod_id = $data->{Products}[0]{ProductId};

        -- Ken

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2014-11-22 15:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (123 votes), past polls