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

如何在PHP中解析cURL返回的JSON并提取指定字段?

PHP cURL调用API提取JSON中responses字段的解决方案

我在PHP中使用cURL调用API时,需要从返回的JSON数据里提取responses字段的值,但每次只能获取完整的JSON数组。以下是我最初的API调用代码:

<?php
    $url = 'https://devman.kuki.ai/atalk';
     
    $curl = curl_init();
     
    $fields = array(
        'botkey' => '41c131bcce47671608b684cae353c7c53c6ad32dea6f92d58c316c9a0a5635d4',
        'input' => 'WHat is your name?'
    );
     
    $fields_string = http_build_query($fields);
     
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields_string);
     
    $data = curl_exec($curl);
    
    curl_close($curl);
?>

解决方法

原代码的问题在于未设置CURLOPT_RETURNTRANSFER选项——默认情况下curl_exec()会直接输出响应内容,而非将其作为字符串返回,导致无法后续解析JSON。添加关键配置并调整代码后,即可提取目标字段:

修改后的完整代码:

<?php
    $url = 'https://devman.kuki.ai/atalk';
     
    $curl = curl_init();
     
    $fields = array(
        'botkey' => '41c131bcce47671608b684cae353c7c53c6ad32dea6f92d58c316c9a0a5635d4',
        'input' => 'WHat is your name?'
    );
     
    $fields_string = http_build_query($fields);
     
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields_string);
    // 开启该选项,让curl_exec返回响应字符串而非直接输出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     
    $data = curl_exec($curl);
    // 将JSON字符串解析为关联数组
    $jsn = json_decode($data, 1);
    // 提取responses数组的第一个元素
    echo "Response= " . $jsn['responses'][0] . "\n\n";
    // 打印解析后的完整数组
    var_export($jsn);
    echo "\n\n";
    // 打印原始JSON字符串
    echo $data;
    
    curl_close($curl);
?>

运行输出

执行上述代码后,会得到如下输出:

Response= My name is Kuki.

array (
  'status' => 'ok',
  'responses' => 
  array (
    0 => 'My name is Kuki.',
  ),
  'sessionid' => 3771193866,
  'channel' => 56,
  'client_name' => 'uuiprod-kdp5f6bce4a8268a350-user-0311',
)

{ "status": "ok", "responses": ["My name is Kuki."], "sessionid": 3771193866 , "channel": 56 , "client_name": "uuiprod-kdp5f6bce4a8268a350-user-0311"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:50:27