我有以下问题。当我试图读取从html页面发布的一些json数据时,我面临以下错误“试图获取非对象的属性”。
用于创建json的Jquery脚本
var json = {"data":[]};
json.data.push({serialNumber: $serialNumber, xreosi: $xreosiToPost,
forma: $forma, apolia: $apolia});
发布到php的Jquery
$.post("page.php",{jsonData: JSON.stringify(json),
customer: $("#cusID").val()},function(data){});
PHP文件
$json = json_decode($_POST['jsonData']);
foreach($json as $value){
$serialNumber = $value->serialNumber;
echo $serialNumber;
}
提前致谢。
答案 0 :(得分:1)
此后:
var json = {"data":[]};
json.data.push({serialNumber: $serialNumber, xreosi: $xreosiToPost,
forma: $forma, apolia: $apolia});
你有: Object [data] [0] = array('serialNumber'=> ...);
需要:
$json = json_decode($_POST['jsonData'][0]);
或
$json = json_decode($_POST['jsonData']);
foreach($json as $row){
foreach($row as $value) {
$serialNumber = $value->serialNumber;
echo $serialNumber;
}
}
答案 1 :(得分:0)
json_decode
将结果作为php对象返回。您必须将true
作为第二个参数传递。此外,您的数据位于$json['data']
,而不是$json
:
$json = json_decode($_POST['jsonData'], true);
foreach($json['data'] as $value) {
$serialNumber = $value->serialNumber;
echo $serialNumber;
}