Ad Widget

Collapse

Как использовать Perl JSON::RPC::Client

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sire
    Senior Member
    • Jul 2010
    • 210

    #1

    Как использовать Perl JSON::RPC::Client

    Использую JSON::RPC::Client. В объектном Perl я не силён. Как лучше обрабатывать JSON-ответ? Сейчас я делаю так:
    Code:
        my $object = {
            jsonrpc => '2.0',
            id => $object_id++,
            auth => $sessionid,
            method => 'hostgroup.get',
            params => {
                'output' => 'extend',
                'filter' => {
                    'name' => [ $group_name ]
                }
            }
        };
    
        my $res = $client->call($url, $object);
    
        if ($res) {
            if ($res->is_error) {
                handle_error("Error: ". to_json($res->error_message));
            }
            else {
                my @arr1 = @{$res->result};
                foreach my $a1 (@arr1) {
                    my @arr2 = $a1;
                    foreach my $a2 (@arr2) {
                        my %h = %{$a2};
                        if ($h{'name'} eq $group_name) {
                            print "In get_hostgroup_by_name: found group name=", $h{'name'}, "\n";
                            return(1);
                        }
                    }
                }
                return(0);
            }
        }
        else {
            handle_error("Error: ". to_json($client->status_line));
        }
    Но чувствую, что можно как-то красивее, чем foreach my $a1 (@arr1) и т.п. Подскажите, пожалуйста.
    Regards,
    Sergey Syreskin

    Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

    Temporary out of Zabbix business
Working...