Twilio Studio中解析HTTP Widget返回JSON并格式化换行显示的求助
解决Twilio Studio解析JSON并格式化显示的问题
先修复PHP的JSON输出
这是核心前提,必须让PHP返回标准无错的JSON。目标格式是["1-Document 1","2-Document 2","3-Document 3"],直接用PHP的json_encode生成,别手动拼接字符串:
<?php header('Content-Type: application/json'); $docs = ["1-Document 1","2-Document 2","3-Document 3"]; echo json_encode($docs); exit; ?>
- 一定要加
Content-Type: application/json响应头,Twilio才能正确识别这是JSON数据 json_encode会自动处理转义等细节,避免手动拼接导致的语法错误
在Twilio Studio中处理解析与格式化
当HTTP Widget(getdocuments)拿到正确JSON后,Twilio会自动解析成数组,直接用{{widgets.getdocuments.parsed}}访问即可,别用body(body是原始字符串,容易出解析问题)。
要实现每行一条的显示效果,有两种简单方法:
方法1:用Liquid循环遍历数组
在Say/Message这类需要输出内容的Widget里,写入Liquid循环代码:
{% for doc in widgets.getdocuments.parsed %} {{ doc }} {% endfor %}
循环会自动把每个文档条目单独换行显示。
方法2:手动处理原始字符串(备用方案)
如果自动解析未生效,直接对body字符串做过滤替换:
{{ widgets.getdocuments.body | remove: '["' | remove: '"]' | replace: '","', '\n' }}
- 先去掉首尾的
["和"] - 再把条目之间的
","替换成换行符\n
验证步骤
- 先测试PHP接口:用浏览器或Postman访问,确认返回的是标准JSON,无语法错误
- 查看Twilio Debugger:检查
getdocumentsWidget的返回数据,确认parsed字段是正确的数组结构 - 测试Studio流程:预览或触发流程,确认最终输出为每行一条的格式
内容的提问来源于stack exchange,提问作者Padpros
相关产品推荐
相关产品推荐

