[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Get info out a JSON file



This looks like Perl.  Try something like this:

foreach my $key (keys %$VAR1) {
  print "Service $key uses port $VAR1->{$key}->{port}\n";
}


On 12/1/09 9:35 AM, "Herbie" <technowombat@yahoo.com> wrote:

> I'm attempting to read someone elses JSON files the structure of which is
> (using Data Dumper):
> 
> $VAR1 = {
>            'smtp' => {
>                        'up_time' => '*',
>                        'checks' => 2,
>                        'problem_send_to' => '*',
>                        'input' => '',
>                        'marginal_send_to' => '*',
>                        'port' => 25,
>                        'marginal' => '*',
>                        'seconds' => 2,
>                        'pow' => '*',
>                        'critical' => '*',
>                        'vital' => 'no',
>                        'up_days' => '*'
>                      },
>            'ssh' => {
>                       'up_time' => '*',
>                       'checks' => 2,
>                       'problem_send_to' => '*',
>                       'input' => '',
>                       'marginal_send_to' => '*',
>                       'hostname' => 'reginald.some.net',
>                       'port' => 22,
>                       'marginal' => 10,
>                       'seconds' => 2,
>                       'pow' => '*',
>                       'critical' => '*',
>                       'vital' => 'no',
>                       'up_days' => '*'
>                     }
>          };
> 
> All I'm interested in, is the value of the port number for each service,
> if I know the service name in advance I can just do something like
> 
> print $services->{ssh}->{port};
> print $services->{smtp}->{port};
> 
> which is well and good, but how do I loop through them if I don't know the
> service name (ssh, smtp, whatever) in advance? NB the service name doesn't
> always correspond to what is in /etc/services.
> 
> h.
> 
> -
> To unsubscribe, send email to majordomo@luci.org with
> "unsubscribe luci-discuss" in the body.


-
To unsubscribe, send email to majordomo@luci.org with
"unsubscribe luci-discuss" in the body.