在Microsoft Bot Framework中用JSON变量替代Prompts.choice硬编码选项
如何将Yes/No选项从硬编码改为从JSON文件调用?
没问题,这其实很简单,分几步就能搞定:
1. 先创建存储选项的JSON文件
新建一个JSON文件(比如命名为promptOptions.json),把你的Yes/No选项存进去,结构清晰点后续扩展也方便:
{ "confirmationChoices": { "yes": "Yes", "no": "No" } }
2. 在代码中引入这个JSON文件
在Node.js环境下,直接用require就能轻松加载JSON文件,不需要额外依赖:
// 注意路径要根据你的文件实际位置调整 const promptConfigs = require('./promptOptions.json');
3. 修改原来的Prompt代码
把原来硬编码的"Yes|No"换成从JSON里取出的变量,按照要求拼接成分隔符格式:
// 从JSON中获取选项并拼接成"|"分隔的字符串 const yesNoChoices = `${promptConfigs.confirmationChoices.yes}|${promptConfigs.confirmationChoices.no}`; builder.Prompts.choice(session, q15, yesNoChoices, { listStyle: builder.ListStyle.button });
额外小技巧:如果你的Bot Builder版本支持数组选项
有些新版本的choice提示支持直接传入数组形式的选项,这样代码会更简洁:
// 直接传入数组,无需手动拼接字符串 builder.Prompts.choice(session, q15, [promptConfigs.confirmationChoices.yes, promptConfigs.confirmationChoices.no], { listStyle: builder.ListStyle.button });
这样以后要修改选项文本,直接编辑JSON文件就行,不用动业务代码啦~
内容的提问来源于stack exchange,提问作者Tyler Liu
相关产品推荐
相关产品推荐

