我已经多次解析JSON数据,但是由于某种原因,无法找到嵌套数据时要使用的正确语法。我正在尝试从此JSON解析“资产”,但是无论我尝试什么,都继续获取为foreach()提供的无效参数。
"3435":{ "name":"COLO-1014-SJ1", "nickname":"US-SJC-004", "type":"Colocated Server", "location":"San Jose:55 S Market", "assets":{ "CPU":[ { "model":"Intel E3 1270" } ], "Hard Drives":[ { "model":"Western Digital 500GB RE4 ABYX SATA" }, { "model":"Western Digital 500GB RE4 ABYX SATA" }, { "model":"Kingston 240GB SSD" } ], "RAM":[ { "model":"Super Talent 4GB DDR3 1333 ECC" }, { "model":"Super Talent 4GB DDR3 1333 ECC" }, { "model":"Super Talent 4GB DDR3 1333 ECC" }, { "model":"Super Talent 4GB DDR3 1333 ECC" } ],
我希望这是…
$json = json_decode($jsondata, true); foreach ($json as $item) { foreach ($item['assets']->RAM as $asset) { echo $asset->model; }
来自php官方文档:http : //php.net/manual/fr/function.json- decode.php
第二个func arg用于assoc数组返回。如果您更喜欢操纵assoc数组而不是对象,则可以使用它。
但是实际上您在循环中混合了数组和对象。
如果您将arg保持在TRUE,请使用$item['assets']['RAM']
TRUE
$item['assets']['RAM']