Hi Im trying to extract data from a node the json is styled as follows

{"id":241995,"name":"Georgia vs Finland","start":"2013-09-10T17:00:00.000Z","status":"paid","sport-id":15,"category-id":[146598],"markets":[],"meta-tags":[{"id":4,"name":"Soccer","type":"SPORT"},{"id":650,"name":"Qualifiers","type":"COMPETITION"},{"id":5,"name":"World Cup 2014","type":"COMPETITION"},{"id":1,"name":"Sport","type":"Root"},{"id":651,"name":"September 10th 2013","type":"DATE"}],"in-running-flag":false,"allow-live-betting":false}

The information I am trying to extract is in the meta-tag array the node which has the date and sports name in it.

So {"id":5,"name":"World Cup 2014","type":"COMPETITION"},{"id":651,"name":"September 10th 2013","type":"DATE"}

The problem is which each new api call the contents of the array change positions so if the information I wanted was in position [0] it may have moved to 3.

17 my @metatag = (); 18 19 for my $i (0..3){ 20 21 my $var1 = $decoded->{'meta-tags'}[$i]{'id'}; 22 if($var1 =~ m/([0-9a-zA-Z]{9})/ ){ 23 push @metatag => $var1; 24 my $compid = $var1; 25 $i++;

I came up with this to extract the ID tag its a horrible hack. Anyone know how I can extract the correct data everytime.?


In reply to JSON ARRAY Problem by Gruaig

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.