gpt4 book ai didi

perl - 如何将 Perl 对象转换为 JSON,反之亦然

转载 作者:行者123 更新时间:2023-12-03 11:53:09 24 4
gpt4 key购买 nike

我在文件 Point.pm 中定义了一个 Point 对象如下:

package Point;
sub new {
my ($class) = @_;
my $self = {
_x => 0,
_y => 0,
};
return bless $self => $class;
}

sub X {
my ($self, $x) = @_;
$self->{_x} = $x if defined $x;
return $self->{_x};
}

sub Y {
my ($self, $y) = @_;
$self->{_y} = $y if defined $y;
return $self->{_y};
}

1;

现在当我使用 JSON通过以下代码将对象转换为 JSON:
use JSON;
use Point;

Point $p = new Point;
$p->X(20);
$p->Y(30);

my $json = encode_json $p;

我收到以下错误:
encountered object 'Point=HASH(0x40017288)', but neither allow_blessed nor convert_blessed settings are enabled at test.pl line 28

如何使用 JSON 模块在 JSON 和对象之间进行转换?

最佳答案

您需要JSYNC .

use JSYNC;
use Point;
my $p = Point->new;
$p->X(20);
$p->Y(30);

my $jsync = JSYNC::dump($p, {pretty => 1});
{
"!" : "!perl/hash:Point",
"_x" : "20",
"_y" : "30"
}

关于perl - 如何将 Perl 对象转换为 JSON,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com