我想解碼一些JSON到一個PHP數組。這裏是代碼摘錄:json_decode返回數組1
$getfile="{"fname":"bob","lname":"thomas","cascade":"bthomas","loc":"res","place":"home 2"}";
$arr = json_decode($getfile, true);
$arr['day3'] = $selecter;
echo(print_r($arr));
返回的唯一東西是'1'。我檢查了JSONLint,它是有效的json,所以我想知道爲什麼json_decode失敗。在將day3鍵添加到它之前,我也嘗試檢查數組是什麼,並且我仍然返回'1'。任何幫助表示讚賞!
實際代碼:
$getfile = "";
$getfile = file_get_contents($file);
if ($getfile == "") {
writeLog("Error reading file.");
}
writeLog("getfile is " . $getfile);
writeLog("Decoding JSON data");
$arr = json_decode($getfile, true);
writeLog("Decoded raw: " . print_r($arr));
writeLog("Editing raw data. Adding data for day " . $day);
$arr['day3'] = $selecter;
writeLog(print_r($arr));
$newfile = json_enconde($arr);
writeLog($newfile);
if (file_put_contents($file, $newfile)) {
writeLog("Wrote file to " . $file);
echo $newfile;
} else {
writeLog("Error writting file");
}
這些都是$文件的內容(這是一個文本文件)
{"fname":"Bob","lname":"Thomas","cascade":"bthomas","loc":"res","place":"home 2"}
你能發佈你的實際代碼嗎?我希望解析錯誤而不是'1'。 – mario 2012-07-11 23:34:46
@mario。剛剛添加! – Vikram 2012-07-11 23:38:16
嘗試在您的JSON字符串的末尾放置單引號。 – wdm 2012-07-11 23:38:17