【发布时间】:2014-09-29 00:58:12
【问题描述】:
我是 PHP 新手,尝试从 json 中回显一些数据,但我陷入了困境。
它显示非数据,但数据在那里。 var_dump() 向我展示了它。
可能我没有正确使用数组,但我找不到问题所在。我有这个代码,
我请求一些我用knockout.js收集的数据
Knockout 给了我一个 json(如下所示)
$json = $_REQUEST[seats];
echo 'requested data raw '. "<br>".$json;
$data = json_decode($json, true);
echo "<br>".'var_dump '. "<br>";
var_dump($data);
foreach ($data as $optie ) {
echo "name = " . $optie->name . "<br>";
echo "optie = " . $optie->optieName . "<br>";
echo "prijs = " . $optie->prijs . "<br>";
}
这是我的 JSON:
[
{
"name": "Naam 1",
"optie": {
"optieName": "Make_up",
"prijs": 9.95
},
"PrijsFormated": "Euro: 9.95"
},
{
"name": "Naam 2",
"optie": {
"optieName": "Handverzorging",
"prijs": 12.95
},
"PrijsFormated": "Euro: 12.95"
}
]
【问题讨论】:
-
你已经在你的
json_decode()上使用了true标志,该值现在是一个数组,所以像一个数组一样访问它,你有一个错字(我猜)$_REQUEST[seat](缺少引用) -
关于我的第一条评论的更正:您的 $data 是一个数组,而不是一个对象,因此,访问值是
$optie['name']等等,而不是$optie->name。此外,正如我之前所说,我不明白它是如何工作的,因为$_REQUEST[seats]应该是$_REQUEST['seats']; -
您将其解码为
array(json_decode()中的第二个参数,您将其设置为true),因此您必须像访问数组一样访问它:$optio['name']..etc
标签: php json knockout.js