我有一个JSON字符串,比如
use JSON::XS qw(decode_json);
say Dumper( decode_json($json) );
将产生:
$VAR1 = {
'Fname' => 'SomeFname',
'Lname' => 'SomeLname',
'Addr' => {
'Street => 'Somestreet',
'Zip' => '00000',
},
};
我正在寻找一种简单的方法将JSON字符串(或Perl结构)转换为Perl/Moose对象,例如:
package My;
use Moose;
has 'Fname' => (is => 'rw', isa => 'Str');
has 'Lname' => (is => 'rw', isa => 'Str');
has 'Addr' => (is => 'rw', isa => 'My::Addr');
并且
package My::Addr;
use Moose;
has 'Street' => (is => 'rw', isa => 'Str');
has 'Zip' => (is => 'rw', isa => 'Str');
这个问题有两个部分:
1. 基于JSON字符串定义Moose类层次结构(一次性)。 2. 从JSON中初始化对象实例(对每个JSON进行操作)。
我对Moose不是非常熟悉,所以需要一些链接来学习解决这个特定的问题。(Moose很大 - 所以阅读CPAN中的所有内容肯定有帮助,但作为一个起点来说太多了。因此,我正在寻找在现实世界问题中逐步学习的方法 - 就像上面的问题一样)。
主要问题如下:
1. 是否可能从数据结构生成Moose类定义(perl源代码)?是否存在这样的CPAN模块? 2. 当我得到类层次结构(例如,如果没有任何帮助器,我可以手动编写它们),创建(初始化)它们的实例的最简单方法是什么?