我已经输入了JSON数据,我已手动设置以进行调试。我正在尝试将数据存储到自己的变量中(以便以后的数据库存储),但是它们是空的。
我尝试过两种不同的东西,但是当echo
将它们移出时,它仍然显示为空。有没有更好的方法来实现这个,并且实际上将数据存储在所需的变量中?
$json = '[{
"q1":"a",
"q2":"d"
}]';
$questions = json_decode($json, true);
$q1 = $questions->q1; //first method of getting the data
$q2 = $questions['q2']; //second attempted method
echo "q1: ".$q1;
echo "q2: ".$q2;
答案 0 :(得分:2)
摆脱json字符串周围的方括号:
$json = '{
"q1":"a",
"q2":"d"
}';
$questions = json_decode($json, true);
$q1 = $questions['q1']; //first method of getting the data
$q2 = $questions['q2']; //second attempted method
echo "q1: ".$q1;
echo "q2: ".$q2;
编辑:由于您计划通过AJAX发送信息,请说使用类似
的内容JSON.stringify($('#formId').serializeArray());
根据您的原始帖子,您最终可能会得到一个JSON数组。在这种情况下,您可能想要执行for循环,或直接访问问题:
$json = '[{
"q1":"a",
"q2":"d"
}]';
$questions = json_decode($json, true);
foreach($questions as $question) {
$q1 = $question['q1']; //first method of getting the data
$q2 = $question['q2']; //second attempted method
}
// This would also work:
echo $questions[0]['q1'];