获取 stdClass 对象值
Get stdClass Object value
我正在尝试从 stdClass
对象数组中获取值,但没有成功。
这是我的代码 运行:
$myjson =
'{"2":{"label":"","value":"","type":null,"validation":null,"required":null},
"6":{"label":"files","value":"getThisValue","type":"file0","validation":null,"required":null},
"3":{"label":"location","value":"val3","type":"hidden","validation":"","required":"0"}
,"0":{"custom3":"zz","value":"","label":""},"1":{"custom3":"zz","value":"","label":""}
}';
$json = json_decode($myjson);
echo $json[6]->'value';
这是行不通的,如果我 Print_r
解码 (print_r($json))
后的 JSON,数组将如下所示:
stdClass Object (
[2] => stdClass Object ( [label] => [value] =>
[type] => [validation] => [required] => )
[6] => stdClass Object (
[label] => files [value] => getThisValue [type] => file0 [validation]
=> [required] => )
[3] => stdClass Object ( [label] => location [value] => val3 [type] => hidden [validation] => [required] => 0 )
[0]
=> stdClass Object ( [custom3] => zz [value] => [label] => )
[1] => stdClass Object ( [custom3] => zz [value] => [label] => ) )
我需要值:getThisValue
。知道我怎样才能得到它吗? (我尝试了很多选项都没有成功)。
您可以将 true
添加到您的 json_decode
,如下所示:json_decode($myjson, true);
,它现在会将您的 json 对象转换为关联数组。
从那里开始,您可以通过请求键获得所需的值,就像其他数组一样。
$newArray = json_decode($myjson, true);
echo $newArray['something'];
您不能将 std 对象用作数组。但为了让您的代码正常工作,只需添加以下行:
$json = get_object_vars($json);
之后您可以像这样访问它:
echo $json[6]->value;
尝试echo $json["6"]["value"];
但是为此你必须使用 json_decode($myjson, true);
true 来获取数组。
因为这将是两个数组,而不是一个对象,所以您必须使用 2 个括号。
如果您想从 stdObject 获取值而不将其转换为数组,您可以这样做:
echo $json->{'6'}->value
您可以使用 {'property_name'}
符号来获取具有非标准名称(例如数字)的 class 属性 的值。
我正在尝试从 stdClass
对象数组中获取值,但没有成功。
这是我的代码 运行:
$myjson =
'{"2":{"label":"","value":"","type":null,"validation":null,"required":null},
"6":{"label":"files","value":"getThisValue","type":"file0","validation":null,"required":null},
"3":{"label":"location","value":"val3","type":"hidden","validation":"","required":"0"}
,"0":{"custom3":"zz","value":"","label":""},"1":{"custom3":"zz","value":"","label":""}
}';
$json = json_decode($myjson);
echo $json[6]->'value';
这是行不通的,如果我 Print_r
解码 (print_r($json))
后的 JSON,数组将如下所示:
stdClass Object (
[2] => stdClass Object ( [label] => [value] =>
[type] => [validation] => [required] => )
[6] => stdClass Object (
[label] => files [value] => getThisValue [type] => file0 [validation]
=> [required] => )
[3] => stdClass Object ( [label] => location [value] => val3 [type] => hidden [validation] => [required] => 0 )
[0]
=> stdClass Object ( [custom3] => zz [value] => [label] => )
[1] => stdClass Object ( [custom3] => zz [value] => [label] => ) )
我需要值:getThisValue
。知道我怎样才能得到它吗? (我尝试了很多选项都没有成功)。
您可以将 true
添加到您的 json_decode
,如下所示:json_decode($myjson, true);
,它现在会将您的 json 对象转换为关联数组。
从那里开始,您可以通过请求键获得所需的值,就像其他数组一样。
$newArray = json_decode($myjson, true);
echo $newArray['something'];
您不能将 std 对象用作数组。但为了让您的代码正常工作,只需添加以下行:
$json = get_object_vars($json);
之后您可以像这样访问它:
echo $json[6]->value;
尝试echo $json["6"]["value"];
但是为此你必须使用 json_decode($myjson, true);
true 来获取数组。
因为这将是两个数组,而不是一个对象,所以您必须使用 2 个括号。
如果您想从 stdObject 获取值而不将其转换为数组,您可以这样做:
echo $json->{'6'}->value
您可以使用 {'property_name'}
符号来获取具有非标准名称(例如数字)的 class 属性 的值。