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

PHP如何从给定JSON响应中提取custom_fields内的full_name字段值

问题原因

你代码报错的核心原因是对custom_fields字段的数据类型判断错误:

  • custom_fields是JSON索引数组(结构被[]包裹),经过json_decode解析后会转为PHP索引数组,而非对象,无法直接通过->访问不存在的属性
  • 数组内的每个元素是独立对象,full_name是元素中variable_name的属性值,而非对象的顶层属性
解决方法

方法1:固定下标取值(仅适用于字段顺序固定的场景)

如果可以确定full_name永远是custom_fields数组的第一个元素,可直接通过下标取值:

<?php 
$obj = json_decode($myjsonabove);

$status = $obj->data->status;
// 取下标0的数组元素,再取其value属性
$full_name = $obj->data->metadata->custom_fields[0]->value;
$amount = $obj->data->amount/100;
?>

方法2:遍历生成关联数组(推荐,适用于全量字段提取、顺序不固定的场景)

先遍历custom_fields生成以variable_name为键的关联数组,后续可直接按需取用所有字段值:

<?php 
$obj = json_decode($myjsonabove);

$status = $obj->data->status;
$amount = $obj->data->amount/100;

// 遍历生成关联数组,兼容字段顺序变化的场景
$customFields = [];
foreach ($obj->data->metadata->custom_fields as $item) {
    $customFields[$item->variable_name] = $item->value;
}

// 全量字段可直接从$customFields中读取
$full_name = $customFields['full_name'];
$school_name = $customFields['school_name'];
$mobile_number = $customFields['mobile_number'];
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:18:02