如何在 DMN 中访问 FEEL 列表文字表达式中的列表元素?
How to access list element in FEEL list literal expression in DMN?
我有以下对象列表:
"animals":[
{
"family":"cat",
"color":"grey"
},
{
"family":"dog",
"color":"white"
}
]
我想访问 dog family and white color
中的第一个 animal
对象。我正在尝试通过这样做来实现它:
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 的规范,但无法弄清楚哪里出了问题。我还从 Redhat 参考了 DMN 的 dmn 决策建模文档,但我仍然一无所知。请帮忙。
在 FEEL 中,列表的元素索引从 1 开始。
所以你想要访问第一个动物对象的表达式实际上是:
animals[family = "dog" and color = "white"][1]
这在第 126 页的 DMN specification 中有记录:
The first element of a list L
can be accessed using L[1]
and the last
element can be accessed using L[-1]
.
为了提供更友好的参考,这是也记录在Drools documentation
Elements in a list can be accessed by index, where the first element
is 1. Negative indexes can access elements starting from the end of
the list so that -1 is the last element.
...等同于产品化的 Red Hat documentation 版本:
我有以下对象列表:
"animals":[
{
"family":"cat",
"color":"grey"
},
{
"family":"dog",
"color":"white"
}
]
我想访问 dog family and white color
中的第一个 animal
对象。我正在尝试通过这样做来实现它:
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 的规范,但无法弄清楚哪里出了问题。我还从 Redhat 参考了 DMN 的 dmn 决策建模文档,但我仍然一无所知。请帮忙。
在 FEEL 中,列表的元素索引从 1 开始。
所以你想要访问第一个动物对象的表达式实际上是:
animals[family = "dog" and color = "white"][1]
这在第 126 页的 DMN specification 中有记录:
The first element of a list
L
can be accessed usingL[1]
and the last element can be accessed usingL[-1]
.
为了提供更友好的参考,这是也记录在Drools documentation
Elements in a list can be accessed by index, where the first element is 1. Negative indexes can access elements starting from the end of the list so that -1 is the last element.
...等同于产品化的 Red Hat documentation 版本: