Форматирование ответа json для плагина загрузки jQuery

Я использую плагин jQuery Upload File и пытаюсь интегрировать в него базу данных. Мне нужно вывести правильный ответ в формате json:

{"files": [
{
"id": 1,
"name": "picture1.jpg"},
{
"id": 2,
"name": "picture2.jpg"}
]}

Что имею на данный момент:

[
{
"id": 1,
"name": "picture1.jpg"},
"id": 2,
"name": "picture2.jpg"}
]

Мой php файл выглядит так:

$files= array();
$db = new DB;
$query = $db->get_rows("SELECT * FROM `files` ORDER BY `name`");

foreach ($query as $row) {
$file = new stdClass();
$file->id = $row->id;
$file->name = $row->name;
array_push($files,$file);
}

header('Content-type: application/json');
echo json_encode($files);

1

Решение

$files= array();
$db = new DB;
$query = $db->get_rows("SELECT * FROM `files` ORDER BY `name`");

foreach ($query as $row) {
$file = new stdClass();
$file->id = $row->id;
$file->name = $row->name;
array_push($files,$file);
}

header('Content-type: application/json');
echo json_encode(array('files' => $files));
1

Другие решения

$t = '[{"id": 1,  "name": "picture1.jpg"}, {"id": 2, "name": "picture2.jpg"}]';

$t = json_decode($t, true);
$t = array("files" => $t);

echo json_encode($t);

Выход:

{"files":[{"id":1,"name":"picture1.jpg"},{"id":2,"name":"picture2.jpg"}]}

Или с вашим кодом просто сделайте:

$files= array();
$db = new DB;
$query = $db->get_rows("SELECT * FROM `files` ORDER BY `name`");

foreach ($query as $row) {
$file = new stdClass();
$file->id = $row->id;
$file->name = $row->name;
array_push($files,$file);
}

header('Content-type: application/json');
echo json_encode(array("files" => $files));
0

По вопросам рекламы [email protected]