7

テンプレート ツールキットを使用して単純な JSON 応答を作成しています (以下のコードを参照)。最後を除く応答のすべての要素の後にカンマを付ける必要があります。

TTs イテレータを使用する必要があると思いますが、うまくいきません。
このコードでは、最後の要素の最後にコンマが出力されます。

問題は、含まれているセクションにあります

[% UNLESS outer.last && loop.last %],[% END %]

外側と内側のループが最後の反復でない限り、これにはコンマを追加する必要があります。

私が間違っていることについての助けは大歓迎です。

{ "success": true, "filesdata": [
[%~ USE outer = iterator(objects); FOREACH object IN outer;
    FOREACH rep IN object.reps;
        IF rep.rep == reptype %]
{ "id":"[% object.id | xml %]", "url":"[% rep.src | xml %]", "story":"[% object.story | xml %]" }[% UNLESS outer.last && loop.last %],[% END %]
        [%~ END;
    END;
END ~%]
] }
4

2 に答える 2

9

これは私のために働く:

[% IF loop.last %]}[% ELSE %]},[% END %]
于 2012-11-15T11:09:40.047 に答える
6

join vmethodを使用してみましたか?リストを作成し、コンマで結合できます。

[% items.join(', ') %]

そうは言っても、Template :: Plugin::SimpleJsonも確認することをお勧めします。ハッシュを作成して、それをこのプラグインに渡すことができます。ただし、それを行うことにした場合でも、実際のテンプレートファイルでJSONを引用することを心配する必要はないでしょう。このようなものを使用すると、将来の苦痛を軽減できます。

テンプレート自体の外部にJSONを作成するオプションもありますが、それは質問の範囲外です。

于 2012-11-01T21:44:39.493 に答える