繁体   English   中英

json_decode 返回 NULL [{},{}]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM