Perl LWP 将 JSON 输出作为字符串返回

问题描述 投票:0回答:1

我正在使用 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';
)。

json perl perl-module lwp lwp-useragent
1个回答
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'
                  }
                ]
    };
© www.soinside.com 2019 - 2024. All rights reserved.