Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl LWP以字符串形式返回JSON输出_Json_Perl_Perl Module_Lwp_Lwp Useragent - Fatal编程技术网

Perl LWP以字符串形式返回JSON输出

Perl LWP以字符串形式返回JSON输出,json,perl,perl-module,lwp,lwp-useragent,Json,Perl,Perl Module,Lwp,Lwp Useragent,我正在使用Perl LWP::UserAgent从API获取响应。除了一个问题外,一切都很好 我使用的API以JSON格式返回响应。但当我通过LWP模块得到响应时,我得到的是字符串,如下所示 $VAR1 = ' {"status":"success","data":[{"empid":"345232","customername":"Lee gates","dynamicid":"2342342332sd32423"},{"empid":"36.VLXP.013727..CBCL..","cus

我正在使用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":""}'
我做了“
打印转储程序$response
”以获得输出

还有一件事,挑战是我的客户机不想使用用于JSON的Perl模块(使用JSON::Parse'Parse_JSON';)


任何帮助都将不胜感激

您需要将JSON字符串解码为Perl数据结构。如果您的perl版本是5.14+,
JSON::PP
包含在core中,因此无需安装

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'
                  }
                ]
    };

您需要将JSON字符串解码为Perl数据结构。如果您的perl版本是5.14+,
JSON::PP
包含在core中,因此无需安装

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'
                  }
                ]
    };

谢谢没有JSON模块,还有其他解析JSON字符串的方法吗。?因为我没有在服务器上安装JSON模块的权限。你必须创建自己的解析器,这很容易出错,非常耗时,而且有点可笑。你可以使用
JSON::PP
,它是一个核心模块,所以它随perl提供,你不必安装任何东西。它有点慢,但它完成了它的工作。@redneb我不知道它是它的一部分core@stevieb是的,只需检查
corelistjson::PP
。因此,如果您只是将代码更改为使用
JSON::PP
,那么它应该可以在没有其他依赖项的情况下工作。谢谢。没有JSON模块,还有其他解析JSON字符串的方法吗。?因为我没有在服务器上安装JSON模块的权限。你必须创建自己的解析器,这很容易出错,非常耗时,而且有点可笑。你可以使用
JSON::PP
,它是一个核心模块,所以它随perl提供,你不必安装任何东西。它有点慢,但它完成了它的工作。@redneb我不知道它是它的一部分core@stevieb是的,只需检查
corelistjson::PP
。因此,如果您只是将代码更改为使用
JSON::PP
,那么它应该可以在没有其他依赖项的情况下工作。