0

テンプレートツールキットを使用してこのデータを取得しようとしましたが、取得できません。

$var1={
      'Object'=>[
                {
                 'Component'=>[
                               {
                                'type'=>'analog',
                                'name'=>'Temp',
                                'value'=>'23'
                                },
                                 {
                                'type'=>'digital',
                                'name'=>'Temp',
                                'value'=>'22'
                                },
                                 {
                                'type'=>'analog',
                                'name'=>'pressure',
                                'value'=>'23'
                                },
                                 {
                                'type'=>'analog',
                                'name'=>'humidity',
                                'value'=>'23'
                                }
                               ]
                             }
                            ],
                           };

私はこのように試しました

[% FOREACH st IN Object %]
[% FOREACH st IN Object.Component %]
[% Component.type %][% Component.name %][% Component.value %]
[% END %]
[% END %]

値を取得できません。エラーも発生しません。この値の取得方法を教えてください。

4

2 に答える 2

1

テンプレートを次のように変更します。

[% FOREACH obj IN Object %]
[% FOREACH comp IN obj.Component %]
[% comp.type %] [% comp.name %] [% comp.value %]
[% END %]
[% END %]
于 2011-11-03T16:17:50.197 に答える
1

2 つのst変数があります。TT がスコープをどのように処理するか正確には覚えていませんが、これは良いことではないと思います。また、 という変数から値を抽出しようとしていますComponent。component という変数をインスタンス化していません。TT は通常、存在しない変数を参照してもエラーにはならず、単に何も出力しないことに注意してください。

これを変更してエラーが発生するようにする場合は、STRICT構成オプションを設定する必要があります。または、デバッグ オプションのいずれかを設定します。

my $template = Template->new(
    {
       STRICT => 1,      # or
       DEBUG => 'undef'
    });

次のようなものを試してください:

[% FOREACH obj in Object %]
    [% FOREACH item in obj.Component %]
      [% obj.type %] [% obj.name %] [% obj.value %]
    [% END %]
[% END %]
于 2011-11-03T16:32:10.863 に答える