从json数组中找出具有唯一id的特定元素

时间:2018-04-27 09:37:28

标签: freemarker

我有json数组&我希望根据下面的例子中提到的人员ID对周进行分组。我尝试了代码,但无法得到它,因为我是免费标记代码的新手。 JSON数组如下: -

[{"时间":" 5.500""状态":"草案""周" :" 17"" PERSON_NAME":"拉吉""为person_id":" 1414"}, {"时间":" 0.500""状态":"草案""周":&#34 ; 17"" PERSON_NAME":"拉吉""为person_id":" 1414"}, {"时间":" 24.500""状态":"草案""周":&#34 ; 14"" PERSON_NAME":"穆克什""为person_id":" 1046"}, {"时间":" 7.500""状态":"草案""周":&#34 ; 15"" PERSON_NAME":"穆克什""为person_id":" 1046"}, {"时间":" 3.000""状态":"草案""周":&#34 ; 16"" PERSON_NAME":"穆克什""为person_id":" 1046"}]

请帮帮我。下面的输出结果如下 对于身份{1046:[14,15,16],1414:[17,17]}

1 个答案:

答案 0 :(得分:0)

这种重组不是应该在模板中完成的事情。虽然FTL可以将类似地图的值和类似列表的值加在一起,但与它一起破解它是非常低效的(它仅用于非常简单的任务)。在将数据传递给模板之前,应该已经对条目进行了分组。

如果必须从模板启动它,那么您将需要一个实用程序Java对象,该对象具有执行此分组的方法或执行此操作的TemplateMethodModelEx实现。然后从模板中调用该实用程序对象(如utils.groupByPersonId(foo)groupByPersonId(foo))。这些实用程序对象可以通过各种方式暴露给模板:作为数据模型的一部分,全局地作为&#34;共享变量&#34;通过freemarker.tempalte.Configuration对象,或确保实用程序TemplateMethodModelEx(或任何其他TemplateModel)类对Java可见,然后在模板中执行类似<#assign groupByPersonId = 'com.example.GroupByPersonIdMethod'?new()>的操作。 / p>