You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bot Framework Composer中用CEL统计查询JSON集合元素?

在Bot Framework Composer中用CEL处理JSON数组的实用示例

我刚好在Bot Framework Composer里折腾过CEL表达式处理JSON响应,针对你遇到的统计数组元素、访问属性的问题,整理了几个能直接用的有效写法:

1. 统计数组总元素数量

你之前用count()函数踩了个小坑——CEL里获取数组总长度要用size()函数,count()是用来筛选统计符合条件的元素的,不是直接拿数组长度的。

假设你的GET请求返回的JSON已经存在dialog.result变量里(和天气示例的存储逻辑一致),那统计result数组元素数量的正确写法是:

@{size(dialog.result.result)}

要是你需要统计满足特定条件的元素(比如筛选number不为空的项),才用count(),举个例子:

@{count(dialog.result.result, item, item.number != '')}

2. 访问单个元素的属性

你的写法本身是对的,但要确保变量路径完全匹配。如果你的JSON结构确实是{ "result": [ { "number": "item 1" }, ... ] }且存在dialog.result中,访问第一个元素的number属性可以直接写:

@{dialog.result.result[0].number}

要是想访问最后一个元素,可以用数组长度动态算索引:

@{dialog.result.result[size(dialog.result.result)-1].number}

3. 遍历数组输出所有元素

如果需要把数组里的所有number值都列出来,可以用join()函数拼接成字符串:

@{join(dialog.result.result, item, item.number, ', ')}

这个表达式会把所有元素的number用逗号加空格连起来,输出结果就是:item 1, item 2, item 3

排查小技巧

要是还是不生效,建议先把完整的dialog.result输出出来,确认JSON结构和存储路径是否正确:

@{json(dialog.result)}

这样能快速排查是不是变量路径写错了导致表达式失效。

内容的提问来源于stack exchange,提问作者WizxX20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:38:13