我试图通过使用对象工厂方法存储值来捕获每个循环的嵌套之外的所有关联元素。
我想要如下所示的输出
预期输出:
[
{Third-Level-ID=EL-234, Second-Level-ID=EL-229, First-Level-ID=EL-213},
{Third-Level-ID=EL-235, Second-Level-ID=EL-229, First-Level-ID=EL-213},
{Third-Level-ID=EL-236, Second-Level-ID=EL-229, First-Level-ID=EL-213},
{Third-Level-ID=EL-233, Second-Level-ID=EL-230, First-Level-ID=EL-213},
{Third-Level-ID=EL-237, Second-Level-ID=EL-230, First-Level-ID=EL-213},
{Third-Level-ID=EL-238, Second-Level-ID=EL-230, First-Level-ID=EL-213},
{Third-Level-ID=EL-239, Second-Level-ID=EL-230, First-Level-ID=EL-213},
{Third-Level-ID=NO-VAL, Second-Level-ID=EL-231, First-Level-ID=EL-213}
]
但是,我通过使用下面的代码得到下面的输出。
电流输出
[
{Third-Level-ID=EL-234, Second-Level-ID=EL-229, First-Level-ID=EL-213},
{Third-Level-ID=EL-238, Second-Level-ID=EL-230, First-Level-ID=EL-213},
{Third-Level-ID=NO-VAL, Second-Level-ID=EL-231, First-Level-ID=EL-213}
]
我正在使用的代码如下所示。
#set($projectId = $page.getReference.projectId())
#set($project = $projectService.getProject($projectId))
#set($documentNames = "Specification-Dummy-First-Level Specification-Dummy-Second-Level Specification-Dummy-Third-Level ")
#set($customerReqs = $trackerService.queryWorkItems($project, "reqType.KEY:customerrequirement AND document.title:($documentNames)", "document.title"))
##First Level Velocity Script Starts Here------------------------
#set($first_level_crs_pobject = $customerReqs.get(2))
#set($first_level_crs_id = $first_level_crs_pobject.getId())
#set($first_level_element_title = $first_level_crs_pobject.getTitle())
#set($first_link =$first_level_crs_pobject.getLinkedWorkItemsStructsBack())
#set($emptyArray = [])
##Second Level Velocity Script Starts Here------------------------
#set($second_level_array_size = $first_link.size())
#foreach($sl in $first_link) ##Second-Level For-Each Starts Here------------------------
#set($new_object_first = $objectFactory.newMap())
#set($second_level_first_elem_pobject = $sl.getLinkedItem())
#set($second_level_first_elem_ID = $second_level_first_elem_pobject.getId())
#set($second_level_first_elem_title = $second_level_first_elem_pobject.getTitle())
#set($second_link = $second_level_first_elem_pobject.getLinkedWorkItemsStructsBack())
#set($dummy = $new_object_first.put("Second-Level-ID",$second_level_first_elem_ID))
#set($dummy = $new_object_first.put("First-Level-ID",$first_level_crs_id))
#set($third_level_array_size = $second_link.size())
#if($third_level_array_size == 0)
#set($dummy = $new_object_first.put("Third-Level-ID","NO-VAL") )
#else
#foreach($tl in $second_link )
#set($third_level_first_elem_pobject = $tl.getLinkedItem())
#set($third_level_first_elem_id = $third_level_first_elem_pobject.getId())
#set($third_level_first_elem_title = $third_level_first_elem_pobject.getTitle())
#set($dummy = $new_object_first.put("Third-Level-ID",$third_level_first_elem_id))
#set($third_link = $third_level_first_elem_pobject.getLinkedWorkItemsStructsBack())
#set($fourth_level_array_size = $third_link.size())
#end ##foreach($tl in $second_link ) ends here
#end ##if($third_level_array_size == 0)
#set( $void = $emptyArray.add($new_object_first))
#end##foreach($sl in $first_link) Second-Level For Each Ends Here
<table border = 1>
<tr><td>Final Array of Object </td><td>$emptyArray</td></tr>
</table>
你能帮忙吗?