【问题标题】:perl parsing json value [closed]perl解析json值
【发布时间】:2012-04-12 10:34:39
【问题描述】:

我在下面的文件中有一个 json 输出

{"devices":{"@size":"3","device":[{"@key":"8519","ipAddr":"172.168.2.1",
"name":"sri-asr1000"},{"@key":"1994","ipAddr":"172.17.41.5","name":
"sp-asr9k"},{"@key":"1998","ipAddr":"115.145.9.14","name":"sr-nex10k"}]}}

我想从中提取表格格式的名称和 IP 地址。

例如

sri-asr1000 172.168.2.1
sp-asr9k 172.17.41.5
sr-nex10k 115.145.9.14

我需要 perlscript,请帮忙。

【问题讨论】:

    标签: json perl


    【解决方案1】:
    my $fileContents = '{"devices":{"@size":"3","device":[{"@key":"8519","ipAddr":"172.168.2.1","name":"sri-asr1000"},{"@key":"1994","ipAddr":"172.17.41.5","name":"sp-asr9k"},{"@key":"1998","ipAddr":"115.145.9.14","name":"sr-nex10k"}]}}';
    use JSON;
    use Data::Dumper;
    
    my $json = JSON->new->allow_nonref();
    
    my $hashTable = $json->decode($fileContents);
    print Dumper($hashTable);
    

    可以在http://metacpan.org/pod/JSON 找到 JSON 库。

    您的输出应该类似于

    $VAR1 = { 'devices' => { '@size' => '3', 'device' => [ { '@key' => '8519', 'name' => 'sri-asr1000', 'ipAddr' => '172.168.2.1' }, { '@key' => '1994', 'name' => 'sp-asr9k', 'ipAddr' => '172.17.41.5' }, { '@key' => '1998', 'name' => 'sr-nex10k', 'ipAddr' => '115.145.9.14' } ] } };

    从此,您可以轻松访问表格的每个元素并打印值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2013-03-17
      • 2010-12-05
      • 2013-07-08
      • 2013-03-11
      相关资源
      最近更新 更多