[英]json_decode returning NULL [{},{}]
我正在使用 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);
回声将检查它是否正常工作,信息在回声时被成功提取,尽管 var_dump 返回
空布尔(真)
数据库内容:
[{"ArrestedBy":"James Scott","Date":1483732483,"Duration":60,"LeaveReason":"Jail time served.","ArrestReason":"test"}]
任何帮助将不胜感激!
尝试达伦的回应后:
我试过
$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\\":\\"入狱时间。\\",\\" ArrestReason\\":\\"test\\"}]"] 所以我试过了
echo $rap['ArrestedBy'];
它返回了
[
您正在尝试访问不在正确范围内的变量。 $rapsheet
只能在您的while() {...
循环中访问,因为它将是当前数据行。 您想要做的是创建$raps
作为数组并在其中插入行。 从那里你可以json_decode()
地json_decode()
。 根据您有多少行,您可能需要遍历$raps
并解码每个数组元素。
$raps = array();
while($rapsheet=mysql_fetch_assoc($rap)){
$raps[] = $rapsheet['value'];
};
// encode
$rap = json_encode($raps, TRUE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.