in reply to Re^7: How to read Array
in thread How to read Array

Thanks for your reply, I have tried below code

my $json = Cpanel::JSON::Dump( map { ( { 'dns_record' => $_ } ) } @dns_record );

But return only first record

{"dns_record":{"ip":"@","ttl":"86400","name":"86400","hostname":"sysadmin.brainhost.com","type":"SOA"}}

I need all records same as below

{"dns_record":{"ip":"@","ttl":"86400","name":"86400","hostname":"sys +admin.brainhost.com","type":"SOA"}}, {"dns_record":{"ip":"@","ttl":"86400","name":"86400","hostname":"192 +.64.179.10","type":"A"}}, {"dns_record":{"ip":"localhost","ttl":"14400","name":"14400","hostna +me":"127.0.0.1","type":"A"}}, {"dns_record":{"ip":"@","ttl":"86400","name":"86400","hostname":"sac +hin.com.","type":"MX","mx_priority":"0"}}, {"dns_record":{"ip":"mail","ttl":"14400","name":"14400","hostname":" +sachin.com.","type":"CNAME"}}, {"dns_record":{"ip":"www","ttl":"14400","name":"14400","hostname":"s +achin.com.","type":"CNAME"}}, {"dns_record":{"ip":"ftp","ttl":"14400","name":"14400","hostname":"s +achin.com.","type":"CNAME"}}

Replies are listed 'Best First'.
Re^9: How to read Array
by hdb (Monsignor) on Jul 15, 2013 at 08:47 UTC

    Here is my full code which I believe creates the desired output:

    use strict; use warnings; use JSON; my $input='{"dns_zone": {"created_at":"2013-07-08T02:21:57-05:00","id" +:752,"name":"aresstest.com","updated_at":"2013-07-08T02:21:57-05:00", +"user_id":136,"records":{"SOA":[{"dns_record":{"expire":2419200,"host +master":"ns1.qwkdns.com","id":122329,"minimum":10800,"name":"@","prim +aryNs":"ns1.qwkdns.com","refresh":7200,"retry":900,"serial":201303211 +2,"ttl":86400,"type":"SOA"}}], "NS":[{"dns_record":{"hostname":"ns1. +qwkdns.com","id":122325,"name":"aresstest.com","ttl":86400,"type":"NS +"}},{"dns_record":{"hostname":"ns2.qwkdns.com","id":122326,"name":"ar +esstest.com","ttl":86400,"type":"NS"}},{"dns_record":{"hostname":"ns3 +.qwkdns.com","id":122327,"name":"aresstest.com","ttl":86400,"type":"N +S"}},{"dns_record":{"hostname":"ns4.qwkdns.com","id":122328,"name":"a +resstest.com","ttl":86400,"type":"NS"}}], "A":[{"dns_record":{"id":1 +22332,"ip":"173.236.102.246","name":"localhost.aresstest.com","ttl":1 +4400,"type":"A"}},{"dns_record":{"id":122333,"ip":"173.236.102.246"," +name":"ftp","ttl":14400,"type":"A"}},{"dns_record":{"id":122334,"ip": +"173.236.36.138","name":"mail","ttl":14400,"type":"A"}},{"dns_record" +:{"id":122335,"ip":"173.236.102.246","name":"webmail","ttl":14400,"ty +pe":"A"}},{"dns_record":{"id":122337,"ip":"173.236.36.138","name":"au +todiscover","ttl":14400,"type":"A"}}], "CNAME":[{"dns_record":{"host +name":"aresstest.com","id":122336,"name":"www","ttl":14400,"type":"CN +AME"}}], "MX":[{"dns_record":{"hostname":"mail.aresstest.com","id":1 +22330,"name":"@","priority":0,"ttl":14400,"type":"MX"}}], "TXT":[{"d +ns_record":{"id":122331,"name":"@","ttl":14400,"txt":"v=spf1 ip4:173. +236.102.246 +a +mx +ip4:173.236.36.138 ?all","type":"TXT"}}]}}}'; my $output = to_json [ map { @$_ } values %{ (from_json $input)->{dns_ +zone}->{records} } ]; $output =~ s/{"dns/\n {"dns/g; # beautifying only, can be removed $output =~ s/\]/\n]/; # beautifying only, can be removed print $output;
    Outout is
    [ {"dns_record":{"priority":0,"ttl":14400,"name":"@","type":"MX","id": +122330,"hostname":"mail.aresstest.com"}}, {"dns_record":{"ttl":14400,"ip":"173.236.102.246","name":"localhost. +aresstest.com","type":"A","id":122332}}, {"dns_record":{"ttl":14400,"ip":"173.236.102.246","name":"ftp","type +":"A","id":122333}}, {"dns_record":{"ttl":14400,"ip":"173.236.36.138","name":"mail","type +":"A","id":122334}}, {"dns_record":{"ttl":14400,"ip":"173.236.102.246","name":"webmail"," +type":"A","id":122335}}, {"dns_record":{"ttl":14400,"ip":"173.236.36.138","name":"autodiscove +r","type":"A","id":122337}}, {"dns_record":{"ttl":14400,"name":"@","type":"TXT","txt":"v=spf1 ip4 +:173.236.102.246 +a +mx +ip4:173.236.36.138 ?all","id":122331}}, {"dns_record":{"ttl":14400,"name":"www","type":"CNAME","id":122336," +hostname":"aresstest.com"}}, {"dns_record":{"ttl":86400,"name":"aresstest.com","type":"NS","id":1 +22325,"hostname":"ns1.qwkdns.com"}}, {"dns_record":{"ttl":86400,"name":"aresstest.com","type":"NS","id":1 +22326,"hostname":"ns2.qwkdns.com"}}, {"dns_record":{"ttl":86400,"name":"aresstest.com","type":"NS","id":1 +22327,"hostname":"ns3.qwkdns.com"}}, {"dns_record":{"ttl":86400,"name":"aresstest.com","type":"NS","id":1 +22328,"hostname":"ns4.qwkdns.com"}}, {"dns_record":{"minimum":10800,"ttl":86400,"serial":2013032112,"host +master":"ns1.qwkdns.com","primaryNs":"ns1.qwkdns.com","name":"@","ret +ry":900,"refresh":7200,"type":"SOA","id":122329,"expire":2419200}} ]