たとえば、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');
この問題には次の 2 つの部分があります。
- JSON 文字列に基づいて Moose クラス階層を定義する (1 回)
- JSON からの実際の値を使用してオブジェクト インスタンスを初期化する (JSON ごとに)
私はムースにあまり熟練していないので、この特定の問題について何を学ぶべきかについていくつかのリンクが必要です。
(Moose は大きいので、CPAN ですべてを読むことは確かに役に立ちますが、最初は多すぎます。したがって、上記のように、現実世界の問題を段階的に学習することを探しています)。
主な質問は次のとおりです。
- データ構造から Moose クラス定義 (perl ソース) を生成することは可能ですか? CPANモジュールのようなものはありますか?
- クラス階層を取得した場合 (たとえば、ここにヘルパーがない場合は手動で記述できます)、JSON からインスタンスを作成 (初期化) する最も簡単な方法は何ですか?