从 Velocity 中数组内的映射获取值

问题描述 投票:0回答:1

我有以下数组($persArray)(示例值,不是实际的项目 - 我正在尝试自学工作的速度)

[{userId=1, events=[{eventId=1, eventTitle=事件 1, eventType=a}, {eventId=2, eventTitle=事件 2, eventType=a}]},{userId=2, events=[ {eventId=3, eventTitle=事件 3, eventType=c}, {eventId=4, eventTitle=事件 4, eventType=d}]}]

每个条目可以包含不同数量的事件

我想要实现的是列出用户的所有事件,包括如下所示的事件类型:

用户:1 答:活动1 答:活动2

用户:2 C:事件3 D:活动 4

我设法访问第一个“级别”,但不知道如何深入,因为到目前为止我只处理过相当简单的数组,而不是“嵌套”数组。

    #foreach($person in $persArray)##
      User: $person.userId<br/>
      Events: $person.events<p></p>
    #end##

哪个输出: 用户:1 事件:[{eventId=1,eventTitle=事件 1,eventType=a},{eventId=2,eventTitle=事件 2,eventType=a}]

我在当前循环中尝试了另一个 foreach 循环,但根本不起作用。

任何帮助表示赞赏!

velocity
1个回答
0
投票

foreach
上的简单嵌套
$person.events
循环对我有用。

模板:

#foreach($person in $persArray)
    User: $person.userId<br/>
    Events: $person.events<p></p>

    #foreach($event in $person.events)
        Event: $event
    #end
#end

输出:(在问题中使用相同的数组)

User: 1<br/>
    Events: [{eventId=1, eventTitle=Event 1, eventType=a}, {eventId=2, eventTitle=Event 2, eventType=a}]<p></p>

Event: {eventId=1, eventTitle=Event 1, eventType=a}
Event: {eventId=2, eventTitle=Event 2, eventType=a}
User: 2<br/>
    Events: [{eventId=3, eventTitle=Event 3, eventType=c}, {eventId=4, eventTitle=Event 4, eventType=d}]<p></p>

Event: {eventId=3, eventTitle=Event 3, eventType=c}
Event: {eventId=4, eventTitle=Event 4, eventType=d}
© www.soinside.com 2019 - 2024. All rights reserved.