Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^5: Help with JSON Module

by remiah (Hermit)
on Sep 07, 2012 at 22:07 UTC ( #992388=note: print w/replies, xml ) Need Help??

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

and it validated.

Do you? When I tried, it highlighted for two errors.

+ot_90x90.jpg", <==here and   
+s/Retail/Superstore/Online/Product/pos/save.png", <==here

If you see document of JSON, you will find "relaxed" option. How it goes with relaxed option?

And Data::Dumper is useful for checking some values.

use Data::Dumper; print Dumper $data;
This prints the content of $data. I hope it helps you debugging.

Replies are listed 'Best First'.
Re^6: Help with JSON Module
by foggy3657 (Novice) on Sep 08, 2012 at 07:52 UTC

    Thank you for trying to help. I think it does not validate because you have copied the + that the website put in. If you take them out it appears to work.

    I have looked at relaxed, but I am having trouble with the syntax. Can you help. The variable holding the returned JSON is $code.

    Thank you - James.

      I guess tobyink's reply will help you.
      How is your $code?
      This works with my environment without warning, error.
      #!/usr/bin/perl use strict; use warnings; use JSON; use Data::Dumper; my $json = JSON->new; my $code=join('', (<DATA>)); print Dumper $code; my $data = $json->decode($code); __DATA__ { "StatusCode": 0, "StatusInfo": "Command Processed OK", "PageNumber": 0, "TotalPageCount": 1, "TotalProductCount": 1, "PageProductCount": 1, "Products": [ { "BaseProductId": "50043662", "EANBarcode": "5000175411118", "CheaperAlternativeProductId": "", "HealthierAlternativeProductId": "", "ImagePath": " +ot_90x90.jpg", "MaximumPurchaseQuantity": 99, "Name": "Oxo 12 Chicken Stock Cubes 71G", "OfferPromotion": "Price Drop Was 1.13 Now 1.00 ", "OfferValidity": "valid from 30/7/2012 until 9/9/2012", "OfferLabelImagePath": " +s/Retail/Superstore/ "Price": 1, "PriceDescription": "1.41 each", "ProductId": "254881114", "ProductType": "QuantityOnlyProduct", "UnitPrice": 1.41, "UnitType": "100g" } ] }

        Thank you. After making a stupid syntax error. $code returns the following using Dumper.

        $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' => ' +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 +save.png' } ], 'TotalProductCount' => 1, 'PageNumber' => 0, 'TotalPageCount' => 1, 'StatusInfo' => 'Command Processed OK', 'PageProductCount' => 1

        I am now looking at a few links to understand references. But to be honest I am not sure I understand what got returned. A Hash or an Array.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://992388]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2017-11-23 02:37 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (328 votes). Check out past polls.