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

PHP调用jsonRPC接口取jwt报Illegal string offset警告如何解决

PHP读取JSON-RPC接口返回jwt字段报错解决方案

错误原因

$response->getRpcResult()返回的是JSON格式字符串,并非PHP关联数组,所以无法直接用["jwt"]的方式读取字段。你打印时看到的{"jwt": "EXAMPLE"}是字符串的输出内容,不是PHP可直接操作的数组/对象结构。

解决步骤

先使用json_decode()将JSON字符串转为PHP可操作的结构,再读取对应字段即可。

方式1:转为关联数组读取

// 1. 获取接口返回的JSON字符串
$rpcResult = $response->getRpcResult();
// 2. 转为关联数组,第二个参数传true表示返回数组格式
$resultArr = json_decode($rpcResult, true);
// 3. 读取jwt字段,用??语法处理字段不存在的情况避免报错
$token = $resultArr['jwt'] ?? '';

方式2:转为对象读取

如果习惯用对象属性的方式取值,去掉json_decode的第二个参数即可:

$rpcResult = $response->getRpcResult();
$resultObj = json_decode($rpcResult);
$token = $resultObj->jwt ?? '';

健壮性优化

建议增加JSON解析校验逻辑,避免接口返回异常格式数据时引发新的报错:

$rpcResult = $response->getRpcResult();
$resultArr = json_decode($rpcResult, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    // JSON解析失败的自定义处理逻辑,例如赋默认值、抛异常
    $token = '';
} else {
    $token = $resultArr['jwt'] ?? '';
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:51:02