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

PHP生成Chatfuel要求的多text节点JSON格式解决方案咨询

解决PHP生成Chatfuel多text节点JSON的重复键覆盖问题

我之前也踩过这个坑!核心问题在于PHP的关联数组不允许存在重复键,如果你直接在同一个数组里重复定义text键,后面的值一定会把前面的覆盖掉。

首先得明确Chatfuel要求的正确JSON格式是这样的:

{
  "messages": [
    {"text": "第一条回复内容"},
    {"text": "第二条回复内容"},
    {"text": "第三条回复内容"}
  ]
}

要在PHP里生成这个格式,你需要把messages定义成索引数组,每个元素都是一个独立的、只包含单个text键的关联数组。具体代码示例如下:

// 构建符合要求的数组结构
$chatfuelResponse = [
    'messages' => [
        ['text' => '这是第一条消息'],
        ['text' => '这是第二条消息'],
        ['text' => '这是第三条消息']
    ]
];

// 转换为JSON输出,JSON_UNESCAPED_UNICODE确保中文不会被转义
echo json_encode($chatfuelResponse, JSON_UNESCAPED_UNICODE);

如果是动态生成消息(比如从数据库读取或者通过循环生成内容),可以用数组追加的方式来构建:

$messages = [];

// 模拟动态添加消息
$messages[] = ['text' => '动态生成的第一条消息'];
$messages[] = ['text' => '动态生成的第二条消息'];
// 可以继续添加更多消息...

$chatfuelResponse = ['messages' => $messages];
echo json_encode($chatfuelResponse, JSON_UNESCAPED_UNICODE);

关键要记住:不要在同一个关联数组里重复定义text键,每个消息都要作为单独的数组元素存在于messages这个索引数组中,这样转成JSON后就完全符合Chatfuel的要求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:37:39