PHP如何访问未知键名的JSON对象中对应的值
解决PHP中访问未知键名对象属性的问题
嘿,这个场景我太熟悉了!当你拿到转成对象的JSON,却不知道外层的键名(比如这里的73),可以用下面几种实用方法来访问对应的值:
方法1:对象转数组后取首个元素
PHP支持把对象强制转换成关联数组,要是你确定外层只有一个未知键,直接用current()或reset()就能拿到对应的值:
// 直接输出整个子对象 echo current((array)$studentData); // 如果要输出子对象里的具体属性,比如title echo current((array)$studentData)->title;
方法2:用get_object_vars()获取属性数组
这个函数会返回对象所有公共属性组成的数组,再取首个元素即可,还能顺便拿到未知键名:
// 链式写法直接输出目标值 echo reset(get_object_vars($studentData)); // 分步操作,方便后续复用键名或值 $objProperties = get_object_vars($studentData); $unknownKey = key($objProperties); // 拿到那个未知的73 $targetValue = reset($objProperties); // 拿到对应的子对象 echo $targetValue;
方法3:foreach遍历(通用场景)
如果不确定对象里有多少个未知键,用foreach遍历是最稳妥的,还能同时获取键名和对应的值:
foreach ($studentData as $unknownKey => $targetValue) { // 输出未知键名(比如73) echo "未知键名:{$unknownKey}<br>"; // 输出对应子对象 echo $targetValue; // 或者输出子对象的具体属性,比如body echo $targetValue->body; }
内容的提问来源于stack exchange,提问作者hooray4horus
相关产品推荐
相关产品推荐

