我正在使用 perl 中的驼鹿对象。我希望能够将我直接制作的驼鹿对象转换为 JSON。
但是,当我使用使用 MooseX::Storage 来隐藏对象时,它包含一个隐藏属性,我不知道如何删除 " __CLASS__
" 。
有没有办法使用 MooseX::Storage 删除它?(现在我只是使用 MooseX::Storage 来隐藏它并使用 JSON 通过去散列来删除“__ CLASS __”属性。)我现在正在做的解决方案是一个问题,因为我必须这样做每次我为每个对象获取 JSON 时(所以当我将 JSON 输出写入文件时,要加载我必须每次都进行更改,并且还必须处理任何引用的对象)
package Example::Component;
use Moose;
use MooseX::Storage;
with Storage('format' => 'JSON');
has 'description' => (is => 'rw', isa => 'Str');
1;
no Moose;
no MooseX::Storage;
use JSON;
my $componentObject = Example::Component->new;
$componentObject->description('Testing item with type');
my $jsonString = $componentObject->freeze();
print $jsonString."\n\n";
my $json_obj = new JSON;
my $perl_hash = $json_obj->decode ($jsonString);
delete ${$perl_hash}{'__CLASS__'};
$jsonString = $json_obj->encode($perl_hash);
print $jsonString."\n\n";