我正在使用Perl LWP :: UserAgent从API获取响应。除了一个问题,一切都很好。
我正在使用它的API以JSON格式返回响应。但是当我通过LWP模块获得响应时,我将其作为字符串获取,如下所示。
$VAR1 = '
{"status":"success","data":[{"empid":"345232","customername":"Lee gates","dynamicid":"2342342332sd32423"},{"empid":"36.VLXP.013727..CBCL..","customername":"Lee subdirectories","dynamicid":"223f3423dsf23423423"}],"message":""}'
我做了“print Dumper $response
”来获取输出。
还有一件事,挑战在于我的客户端不想使用Perl模块来使用JSON(使用JSON :: Parse'parse_json';)。
任何帮助将不胜感激!
答案 0 :(得分:4)
您需要将JSON字符串解码为Perl数据结构。如果您的perl版本是5.14+,则核心中包含JSON::PP
,因此无需安装。
use warnings;
use strict;
use Data::Dumper;
use JSON::PP qw(decode_json);
my $json = '{"status":"success","data":[{"empid":"345232","customername":"Lee gates","dynamicid":"2342342332sd32423"},{"empid":"36.VLXP.013727..CBCL..","customername":"Lee subdirectories","dynamicid":"223f3423dsf23423423"}],"message":""}';
my $perl = decode_json $json;
print Dumper $perl;
输出:
$VAR1 = {
'status' => 'success',
'message' => '',
'data' => [
{
'dynamicid' => '2342342332sd32423',
'customername' => 'Lee gates',
'empid' => '345232'
},
{
'empid' => '36.VLXP.013727..CBCL..',
'customername' => 'Lee subdirectories',
'dynamicid' => '223f3423dsf23423423'
}
]
};