Perl解析json数据

 filename: json_test.pl

解析json格式数据 1.解析curl返回的json数据;2.解析文件中的json串。

测试用文件json_result.txt的内容见本段代码后;

#!/usr/bin/perl -w

use WWW::Curl::Easy;
use JSON;
use Data::Dumper;

my $json = new JSON;
my $curl = new WWW::Curl::Easy;

my $response_body="";
my $retcode=1;

$curl->setopt(CURLOPT_URL, '192.168.0.20/GetAgent?eId=3000&cno=2000');
$curl->setopt(CURLOPT_WRITEDATA,\$response_body);

$retcode = $curl->perform;
print $retcode."\n";

my $obj = $json->decode($response_body);

#print Dumper($obj);

my $dial_interface = $obj->{'dial_interface'};
my $dial_cno = $obj->{'dial_cno'};
my $dial_tel = $obj->{'dial_tel'};
my $agent_login_status = $obj->{'agent_login_status'};
my $agent_device_status = $obj->{'agent_device_status'};

print $dial_interface."\n";
print $dial_cno."\n";
print $dial_tel."\n";
print $agent_login_status."\n";
print $agent_device_status."\n";
#-------------------------------
open(JFILE, "</home/perl/json_result.txt");
while(<JFILE>) {
    print $_;
    my $item_line = $json->decode($_);
    my $dial_interface = $item_line->{'interface'};
    my $dial_cno = $item_line->{'cno'};
    my $dial_tel = $item_line->{'tel'};
    my $agent_login_status = $item_line->{'agent_login_status'};
    my $agent_device_status = $item_line->{'agent_device_status'};
    print $interface."\n";
    print $cno."\n";
    print $tel."\n";
    print $agent_login_status."\n";
    print $agent_device_status."\n";
}
close(JFILE);
json_result.txt里的内容:
{"interface":"7777@32000","cno":"2000","tel":"7777","agent_login_status":"online","agent_device_status":"idle"}
{"interface":"6666@2001","cno":"2001","tel":"6666","agent_login_status":"online","agent_device_status":"idle"}
运行json_test.pl的输出结果如下:

0
7777@2000
2000
7777
online
idle
{"interface":"7777@2000","cno":"2000","tel":"7777","agent_login_status":"online","agent_device_status":"idle"}
7777@2000
2000
7777
online
idle
{"interface":"6666@2001","cno":"2001","tel":"6666","agent_login_status":"online","agent_device_status":"idle"}
6666@32001
2001
01041006666
online
idle


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值