如何在Perl中将字符串转换为JSON

Yog*_*esh 4 perl json

我是Perl的新手,所以请在以下帮助我

我有一个perl脚本来执行telnet命令。该脚本以字符串形式接收来自服务器的响应。实际上,服务器创建了一个json字符串,然后将其发送到客户端程序,但是客户端程序将其显示为string

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

我有结构类似于以下的json字符串

[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]
Run Code Online (Sandbox Code Playgroud)

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

@lines = $telnet->waitfor('/$/');
my @json;
@json = @{decode_json(@lines)};
Run Code Online (Sandbox Code Playgroud)

打印输出如下

HASH(0x1af068c)
Run Code Online (Sandbox Code Playgroud)

提前致谢 !!!

Bil*_*ert 5

这是一个转换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;
Run Code Online (Sandbox Code Playgroud)


小智 5

我认为有一个更简单的:

use JSON ();

$content = "{WHATEVER JSON CONTENT}";

$content = JSON->new->utf8->decode($content);
Run Code Online (Sandbox Code Playgroud)