我正在使用一个API,它以JSON格式向我提供数据,然后我json_decode()将采用以下格式:
[stockData] => stdClass Object
(
[data] => stdClass Object
(
[PS3] => stdClass Object
(
[2015-01-26T20:45:01Z] => stdClass Object
(
[AMU] => 999.76
[ZIT] => 3.63
)
)
)
[status] => stdClass Object
(
[code] => 200
[text] => ok
)
)
Run Code Online (Sandbox Code Playgroud)
我需要一些方法来获取2015-01-26T20:45:01Z(这一直在变化).
我试过get_Class()这个对象,例如:
get_Class($bawsaq->stockData->data->PS3)(实际上在一个foreach循环中)
但所有返回的是:"stdClass"而不是名称.我怎样才能得到对象的名字?
它实际上不是对象的类:它是包含stdClass对象的属性的名称.所以你需要从中获取第一个对象属性名称$bawsaq->stockData->data->PS3.实际上,这有点棘手.
使用数组更好.如果使用$assoc参数of json_decode,则只要出现JSON对象,就可以获得关联数组而不是对象.这在PHP中更容易处理.
$bawsaq = json_decode($jsonData, true);
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获取密钥名称key:
$dateTime = key($bawsaq['stockData']['data']['PS3']);
Run Code Online (Sandbox Code Playgroud)
解码 JSON 时,请使用
$bawsaq = json_decode($json, true);
Run Code Online (Sandbox Code Playgroud)
这将返回关联数组而不是stdClass所有 JSON 对象的对象。然后你可以使用
$keys = array_keys($bawsaq['stockData']['data'];
$date = $keys[0];
Run Code Online (Sandbox Code Playgroud)