【发布时间】:2014-05-24 18:36:24
【问题描述】:
我已经看过这个帖子:PHP decode nested JSON 并没有设法用它来解决我的问题。
我目前正在从 Mongo 抓取一个 JSON 对象,但在从嵌套对象抓取信息时遇到问题。
{
"adminLevel" : 200,
"chat" : true,
"clans" : [
BinData(0,"wcXHR577OVBXfy9JwEf5gQAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
],
"experience" : NumberLong(70003),
"kitNew" : {
"converted" : true,
"items" : {
"ak47" : {
"killCount" : 5,
"selected" : false,
"unlocked" : 1
},
"hub-knife" : {
"selected" : false
},
"assault" : {
"selected" : false,
"unlocked" : 1
},
"pistol" : {
"deathWhileSelectedCount" : 3,
"killedBySelectedCount" : 1,
"killWhileSelectedCount" : 1,
"selected" : false,
"unlocked" : 1
},
"m1014" : {
"deathWhileSelectedCount" : 3,
"killedBySelectedCount" : 1,
"killCount" : 17,
"killWhileSelectedCount" : 1,
"killedByCount" : 1,
"selected" : false,
"unlocked" : 1
},
},
},
"points" : NumberLong(87167),
}
我的目的是打印出每个项目的信息,我的PHP代码如下
// execute query
// retrieve all documents
$query = array("lastKnownUsername" => "Strubo");
$cursor = $collection->find($query);
$array = json_decode($cursor, true);
$items = $array->kitNew->items;
foreach($items as $item){
echo "<tr>";
echo "<td>" . $item . "</td>";
echo "<td>" . $item->killCount . "</td>";
echo "<td>" . $item->killedByCount . "</td>";
echo "<td>" . $item->selected . "</td>";
echo "<td>" . $item->unlocked . "</td>";
echo "</tr>";
}
// disconnect from server
$conn->close();
} catch (MongoConnectionException $e) {
die('Error connecting to MongoDB server');
} catch (MongoException $e) {
die('Error: ' . $e->getMessage());
}
我知道连接到数据库没有问题,也没有任何环境问题,因为抓取数据的其他显示工作正常。这里的问题只是嵌套。
谢谢。
【问题讨论】:
标签: php json mongodb mongodb-php