Drools 如何在DMN中访问FEEL list literal表达式中的list元素?

Drools 如何在DMN中访问FEEL list literal表达式中的list元素?,drools,kie,dmn,feel-language,Drools,Kie,Dmn,Feel Language,我有以下对象列表: "animals":[ { "family":"cat", "color":"grey" }, { "family":"dog", "color":"white" } ] 我要访问第一个动物对象,该对象位于狗族和白色中。我正试图通过这样做来实现这一目标: animals[fami

我有以下对象列表:

"animals":[
{
  "family":"cat",
  "color":"grey"
},
{
  "family":"dog",
   "color":"white"
}
]
我要访问第一个
动物
对象,该对象位于
狗族和白色
中。我正试图通过这样做来实现这一目标:

animals[family = "dog" and color = "white"][0]
但它显示了如下警告:

FEEL WARN while evaluating literal expression 'animals[ family = .... [string clipped after 50 chars, total length is 82]': Index out of bound: list of 1 elements, index 0; will evaluate as FEEL null

这里到底有什么不正确的地方?我觉得我在语义上做错了什么。我也参考了FEEL的规格,但无法找出问题所在。我还参考了来自的dmn决策建模文档,但我仍然不清楚。请帮助。

在FEEL中,列表的元素索引从1开始

因此,要访问第一个动物对象的表达式实际上是:

animals[family = "dog" and color = "white"][1]
这记录在第126页:

可以使用
L[1]
访问列表的第一个元素
L
,最后一个元素 可以使用
L[-1]
访问元素

为了提供更友好的参考,这一点也记录在

可以通过索引访问列表中的元素,其中第一个元素 是1。负索引可以从结尾开始访问元素 列表中的元素,因此-1是最后一个元素

…并且对于产品化版本也同样适用: