如何在perl中将字符串转换为json

如何在perl中将字符串转换为json,json,perl,Json,Perl,我对perl非常陌生,所以请在以下方面帮助我 [{"success":"21","data":[{"name":"tester","lastname":"project"}]}] 我有一个perl脚本来执行telnet命令。此脚本以字符串形式从服务器接收响应。实际上,服务器创建一个json字符串,然后发送给客户端程序,但客户端程序将其显示为string 问题:如何将该字符串转换为json并从该json字符串读取数据 我有一个json字符串,其结构与下面类似 [{"success":"21","

我对perl非常陌生,所以请在以下方面帮助我

[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]
我有一个perl脚本来执行telnet命令。此脚本以字符串形式从服务器接收响应。实际上,服务器创建一个json字符串,然后发送给客户端程序,但客户端程序将其显示为
string

问题:如何将该字符串转换为json并从该json字符串读取数据

我有一个json字符串,其结构与下面类似

[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]

下面是我尝试将其转换为json的最后几行

@lines = $telnet->waitfor('/$/');
my @json;
@json = @{decode_json(@lines)};
它输出如下所示

HASH(0x1af068c)

提前感谢

下面是一个转换JSON的代码片段。修改以捕获错误

use strict;
use warnings;
use JSON::XS;
use Try::Tiny;
use Data::Dumper::Concise;

my $data = qq<[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]>;

my $decoded;

try {
    $decoded = JSON::XS::decode_json($data);
}
catch {
    warn "Caught JSON::XS decode error: $_";
};

print Dumper $decoded;
使用严格;
使用警告;
使用JSON::XS;
使用Try::Tiny;
使用数据::转储程序::简明;
我的$data=qq;
我的美元被解码了;
试一试{
$decoded=JSON::XS::decode_JSON($data);
}
抓住{
警告“捕获的JSON::XS解码错误:$”;
};
打印转储程序$已解码;

我认为有一个更简单的方法:

use JSON ();

$content = "{WHATEVER JSON CONTENT}";

$content = JSON->new->utf8->decode($content);

谢谢。你能帮我了解“成功”的价值吗?我试了一下,但不起作用。我肯定我做错了什么:(.我对perl print$decoded->{'success'};print$decoded['success']);再次感谢!decode函数在出错时死亡。我修改了示例,使用模块Try::Tiny捕捉错误。再次感谢:)我如何访问“success”的值也就是说,$decoded?$decoded->[0]{success}-[0]是数组索引,{success}是散列键。我试图以$decoded[0]->{“success”}的身份访问。。愚蠢的错误。非常感谢!!!:)