Php 试图获取非对象的属性,但它是一个对象
我试图得到一个对象的属性Php 试图获取非对象的属性,但它是一个对象,php,json,object,properties,Php,Json,Object,Properties,我试图得到一个对象的属性 function page($json, $name) { $data = json_decode($json); //$0 = '0'; $cSKU = '574294403'; var_dump($data->variations->$cSKU->dimensions->dimension); } 返回: array(3) { [0]=> object(stdClass)#5030 (1) { ["c
function page($json, $name) {
$data = json_decode($json);
//$0 = '0';
$cSKU = '574294403';
var_dump($data->variations->$cSKU->dimensions->dimension);
}
返回:
array(3) { [0]=> object(stdClass)#5030 (1) { ["color"]=> object(stdClass)#5029 (5) { ["displayName"]=> string(5) "Farbe" ["value"]=> string(12) "schwarz-blau" ["colorHexCode"]=> string(7) "#19181d" ["baseColor"]=> string(7) "schwarz" ["iconId"]=> string(8) "26183061" } } [1]=> object(stdClass)#5032 (1) { ["version"]=> object(stdClass)#5031 (2) { ["displayName"]=> string(11) "Ausführung" ["value"]=> string(8) "RH 48 cm" } } [2]=> object(stdClass)#5034 (1) { ["unknown"]=> object(stdClass)#5033 (3) { ["displayName"]=> string(7) "Unknown" ["value"]=> string(21) "27,5+ Zoll (69,85 cm)" ["name"]=> string(7) "unknown" } } }
Trying to get property of non-object in ...
但是:
返回:
array(3) { [0]=> object(stdClass)#5030 (1) { ["color"]=> object(stdClass)#5029 (5) { ["displayName"]=> string(5) "Farbe" ["value"]=> string(12) "schwarz-blau" ["colorHexCode"]=> string(7) "#19181d" ["baseColor"]=> string(7) "schwarz" ["iconId"]=> string(8) "26183061" } } [1]=> object(stdClass)#5032 (1) { ["version"]=> object(stdClass)#5031 (2) { ["displayName"]=> string(11) "Ausführung" ["value"]=> string(8) "RH 48 cm" } } [2]=> object(stdClass)#5034 (1) { ["unknown"]=> object(stdClass)#5033 (3) { ["displayName"]=> string(7) "Unknown" ["value"]=> string(21) "27,5+ Zoll (69,85 cm)" ["name"]=> string(7) "unknown" } } }
Trying to get property of non-object in ...
怎么了?你应该把它变成一个数组。 在
json\u decode($json,true)
中,添加第二个参数。这样,您就可以以数组的形式获取内容
var_dump($data[0]['key_val']);
根据您的
var\u dump()
array(3) {
[0]=> object(stdClass)#5030 (1) {
["color"]=> object(stdClass)#5029 (5) {
["displayName"]=> string(5) "Farbe"
["value"]=> string(12) "schwarz-blau"
["colorHexCode"]=> string(7) "#19181d"
["baseColor"]=> string(7) "schwarz"
["iconId"]=> string(8) "26183061"
}
}
[1]=> object(stdClass)#5032 (1) {
["version"]=> object(stdClass)#5031 (2) {
["displayName"]=> string(11) "Ausführung"
["value"]=> string(8) "RH 48 cm"
}
}
[2]=> object(stdClass)#5034 (1) {
["unknown"]=> object(stdClass)#5033 (3) {
["displayName"]=> string(7) "Unknown"
["value"]=> string(21) "27,5+ Zoll (69,85 cm)"
["name"]=> string(7) "unknown"
}
}
}
…颜色对象位于维度的第一个数组元素中
这两种方法中的任何一种都有效,选择权在你
代码:()
输出:
object(stdClass)#1 (5) {
["displayName"]=>
string(5) "Farbe"
["value"]=>
string(12) "schwarz-blau"
["colorHexCode"]=>
string(7) "#19181d"
["baseColor"]=>
string(7) "schwarz"
["iconId"]=>
string(8) "26183061"
}
---
array(5) {
["displayName"]=>
string(5) "Farbe"
["value"]=>
string(12) "schwarz-blau"
["colorHexCode"]=>
string(7) "#19181d"
["baseColor"]=>
string(7) "schwarz"
["iconId"]=>
string(8) "26183061"
}
数组(3){
…你有一个object数组,我看到了..我该如何提取它们?你可以循环遍历对象数组。或者按索引设置目标。如果遇到问题,请包含你的JSON。我需要添加的第二个参数可能重复?你有例子吗?如果你不熟悉你编写的代码,那么我也无能为力但是它。@Angeleyes不幸的是我没有写这段代码,我甚至不是一个编码员,但是写这段代码的编码员已经不在了。所以我试着自己修复一些bug…不幸的是,我还坐在解决方案上=(是的,它很有效,很难&我不得不即兴创作,但最终我找到了自己的方法。这就是我需要的:我唯一错过的,是忽略$dimension[2],而没有[2]。我尝试了“if isset”,但没有起作用。只是做了,非常感谢。我还在苦苦挣扎,当只有[0]和[1]时,如何忽略[“dimension”][2]。你有什么提示吗?谢谢,它看起来不错,但对我来说太难理解。我已经有了一个解决方案:。现在我尝试设置($dimension[2])?foreach($dimension[2]为$var3):$var3=“”;-但我得到了“语法错误-意外的T_foreach”…谢谢你,mickmackusa,我尝试了我的和你的两个代码,但结果fputcsv只输入数组的一个值。如果你的代码echo($subset->displayName)返回“Farbe”和“Ausführung”,我需要“$varname1='Farbe'和$varname2='Ausführung',$varname3='someothervalue”。