我正在使用 PHP 从我们的数据库(使用 GLua 输入)中提取信息,然后使用 json_decode 将其更改为要使用的数组,但它返回 NULL,而其他的正在工作?
// Get the RapSheet info from 'character_data_store'
$rap = mysql_query("SELECT * FROM `character_data_store` WHERE `character_id` = '$srp_uid' AND `key`='RapSheet'");
while($rapsheet=mysql_fetch_assoc($rap)){
$raps = $rapsheet['value'];
};
然后我用
// Deal with the rapsheet JSON
echo $raps;
$raps = json_decode($rapsheet, true);
echo var_dump($raps, TRUE);
echo 是为了检查它是否正常工作,虽然 var_dump 返回了,但信息在回显时被成功拉取
NULL bool(true)
数据库内容:
[{"ArrestedBy":"James Scott","Date":1483732483,"Duration":60,"LeaveReason":"Jail time served.","ArrestReason":"test"}]
任何帮助将不胜感激!
在尝试 Darren 的回应之后:
我试过了
$rap = mysql_query("SELECT * FROM `character_data_store` WHERE `character_id` = '$srp_uid' AND `key`='RapSheet'");
$raps = array();
while($rapsheet=mysql_fetch_assoc($rap)){
$raps[] = $rapsheet['value'];
};
// encode
$rap = json_encode($raps, TRUE);
echo $rap;
然后返回:
["[{\"ArrestedBy\":\"James Scott\",\"Date\":1483732483,\"Duration\":60,\"LeaveReason\":\"Jail time served.\",\"ArrestReason\":\"test\"}]"] So I tried
echo $rap['ArrestedBy'];
它返回了
[
最佳答案
您正在尝试访问不在适当范围内的变量。 $rapsheet
只能在您的 while() {...
循环中访问,因为它将是当前数据行。您要做的是将 $raps
创建为一个数组并在其中插入行。从那里您可以随心所欲地json_decode()
。根据您获得的行数,您可能需要遍历 $raps
并解码每个数组元素。
$raps = array();
while($rapsheet=mysql_fetch_assoc($rap)){
$raps[] = $rapsheet['value'];
};
// encode
$rap = json_encode($raps, TRUE);
关于php - json_decode 返回 NULL [{},{}],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149735/