ajax在php下面调用并期望返回一个json数组。我想我已准备好数据,但不知道如何正确地返回它们。
$files = array();
foreach($db2_databaselist as $db) {
$file = new stdClass();
$file->data = date('Y-m-d--H:i:s',strtotime($db));
$file->attr = new stdClass();
$file->attr->rel = "file";
$file->attr->timestamp = $db.$type[0];
$files[] = json_encode($file);
}
echo "<pre>Output = " . print_r($files,TRUE) . "</pre>";
echo "<BR><BR><BR>";
print_r($files, TRUE);
print_r($files,TRUE)
给我的地方
Output = Array
(
[0] => {"data":"2011-08-07--02:30:05","attr":{"rel":"file","timestamp":"20110807023005w"}}
[1] => {"data":"2011-07-31--02:30:09","attr":{"rel":"file","timestamp":"20110731023009w"}}
[2] => {"data":"2011-07-24--02:30:09","attr":{"rel":"file","timestamp":"20110724023009w"}}
)
但print_r($files,TRUE)
没有任何回报。
如何让php返回
[
{"data":"2011-08-07--02:30:05","attr":{"rel":"file","timestamp":"20110807023005w"}},
{"data":"2011-07-31--02:30:09","attr":{"rel":"file","timestamp":"20110731023009w"}},
[2] => {"data":"2011-07-24--02:30:09","attr":{"rel":"file","timestamp":"20110724023009w"}}
]
答案 0 :(得分:2)
在循环之后你不需要json编码。你需要 implode
。您的数组值已经是JSON字符串,这意味着使用json_encode只会转义字符串!
相反:
echo '['.implode(',',$files).']';
OR!你可以在这一行跳过json_encode:
$files[] = json_encode($file);
循环的结束将会是这样的:
$files[] = $file;
}
$files = json_encode( $files );
答案 1 :(得分:0)
你需要使用json_encode
php函数
print json_encode($files);
答案 2 :(得分:-1)
echo json_encode($files)
应该足够了