Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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中从Moose对象的JSON输出中删除_类_Json_Perl_Serialization_Moose - Fatal编程技术网

在Perl中从Moose对象的JSON输出中删除_类

在Perl中从Moose对象的JSON输出中删除_类,json,perl,serialization,moose,Json,Perl,Serialization,Moose,我正在用perl处理moose对象。我希望能够将我创建的moose对象直接转换为JSON 但是,当我使用MooseX::Storage来隐藏对象时,它包含一个隐藏属性,我不知道如何删除“\uuuu CLASS\uuu” 有没有办法使用MooseX::Storage删除此文件?(目前,我只是使用MooseX::Storage对其进行转换,并使用JSON通过哈希删除“\uuuuuuu类\uuuuuuuuuuu”属性。)我现在所做的解决方案是一个问题,因为每次获得每个对象的JSON时,我都必须这样做(

我正在用perl处理moose对象。我希望能够将我创建的moose对象直接转换为JSON

但是,当我使用MooseX::Storage来隐藏对象时,它包含一个隐藏属性,我不知道如何删除“
\uuuu CLASS\uuu

有没有办法使用MooseX::Storage删除此文件?(目前,我只是使用MooseX::Storage对其进行转换,并使用JSON通过哈希删除“\uuuuuuu类\uuuuuuuuuuu”属性。)我现在所做的解决方案是一个问题,因为每次获得每个对象的JSON时,我都必须这样做(因此,当我将JSON输出写入文件时,要加载,我必须每次都进行更改,并且还必须处理任何引用的对象)


MooseX::Storage
并不特别适合此任务。它的设计目的是启用Moose对象的持久存储(这就是为什么它添加了
\uuuuuu CLASS\uuuuu
字段),以便您的程序以后可以检索它们

如果您的目标是为JSON API构造对象,那么直接将对象的hashref传递给JSON.pm可能会容易得多

use JSON -convert_blessed_universally;

my $json_obj = JSON->new->allow_blessed->convert_blessed;
my $jsonString = $json_obj->encode( $componentObject );
-convert\u founded\u universal
选项(除了一口)将导致JSON.pm将founded引用(对象)视为可以直接转换为JSON的普通Perl结构


编辑:看起来您还必须将
允许受祝福的
转换受祝福的
选项添加到JSON对象。

MooseX::Storage
并不特别适合此任务。它旨在启用Moose对象的持久存储(这就是它添加
字段的原因)因此,您的程序可以稍后检索它们

如果您的目标是为JSON API构造对象,那么直接将对象的hashref传递给JSON.pm可能会容易得多

use JSON -convert_blessed_universally;

my $json_obj = JSON->new->allow_blessed->convert_blessed;
my $jsonString = $json_obj->encode( $componentObject );
-convert\u founded\u universal
选项(除了一口)将导致JSON.pm将founded引用(对象)视为可以直接转换为JSON的普通Perl结构


编辑:看起来您还必须向JSON对象添加
允许受祝福
转换受祝福
选项。

这不就是您要存储的对象的类名吗?您为什么要尝试摆脱它?在这里,您实际要实现什么?我正在尝试使用JSON API“类”对于我正在使用的api无效,并且api不会接受JSON对象。这不是给了你正在存储的对象的类名吗?你为什么要尝试摆脱它?你到底想实现什么,在这里?我正在尝试使用JSON api,即“类”对于我正在使用的api无效,并且api不会接受JSON对象。这有一个小问题,我希望能够将该项推回到moose对象中,是否可以使用$JSON_obj->decode?当然可以,但是您需要直接使用构造函数,因为JSON数据不保留任何类关联
Example::Component->new(%{$json_obj->decode})
这有一个小问题,我希望能够将该项推回到moose对象中,使用$json_obj->decode可以吗?当然可以,但您需要直接使用构造函数,因为json数据不保留任何类关联。因此类似于
示例::组件->新建(%{$json_obj->decode})