在PHP中解析JSON
我的变量jsonvar采用{“rating”:“good”}
的形式一旦我用这个$ .ajax代码提交它,我对我的PHP(jsonproc.php)应该是什么感觉有点困惑。
$.ajax({
url: 'jsonproc.php',
data: {js:jsonvar},
dataType: 'json',
type: 'post',
success: function (j) {
if (j.ok){
alert(j.msg);
} else {
alert(j.msg);
}
}
});
我把它设置为
$decoded = $_GET['js'];
$response = array(
'ok' => true,
'msg' => $decoded['rating']);
然而,当我回复它时,
echo json_encode($response);
使用alert(j.msg)显示“null”值。
假设我正确传递JSON,我如何指向评级并获得“好”的值?
由于
修改
已解决,使用$ _REQUEST我能够获得JSON,但$ _GET无效。
此外,关键是使用$ decoding-> {'rating'}因为$ decode不再仅仅是一个我不认为的数组,或者它是一个不同的diff类型?
答案 0 :(得分:3)
看起来你在这里混合数据类型:
data: "js="+jsonvar,
如果传递一个对象,jQuery将转换JSON,但是你将查询字符串与JSON混合。
尝试:
data: {js: jsonvar},
你可能还需要做json_decode($ _ GET ['js'])。
编辑:您可以使用Firebug / Web Inspector仔细检查jQuery正在POST的内容。最容易确定的方法。
答案 1 :(得分:-2)
尝试将其添加到PHP文件的顶部:
header('Content-type: application/json');