О json_encode и ajax dataType: "json"

В моем коде ajax:

$.ajax({
        url: CI_ROOT + "isUserExist",
        type: "GET",
        data: {recepient: recepient},
        success: function(r) {
            console.log(r)
        }
})

Дает мне вывод [{"records":"1"}][{"records":"1"}] Поэтому я проанализировал его в json, добавив dataType: "json" в мой код ajax. Но когда я его проанализировал, он не выдает вывод, а выдает ошибку на try-catch-block.

Как мне заставить его отображать как объекты? В моем PHP-коде я делаю это так:

 for ($i = 0; $i < count($matches[0]); $i++) {
     echo json_encode($this->searchmodel->doesUsersExists($matches[0][$i]));
 } //gets the user id of the user from a given string.

2 ответа

Добавьте каждую запись в массив, а затем json кодируйте этот массив вместо json, кодирующего каждую отдельно. Если у вас есть только один вызов json_encode, вы получите действительный JSON:

$result = array();
for ($i = 0; $i < count($matches[0]); $i++) {
     $result[] = $this->searchmodel->doesUsersExists($matches[0][$i]);
} //gets the user id of the user from a given string.

echo json_encode($result);

Это не действительно JSON. Создайте массив из существующих результатов и закодируйте его.

Другие вопросы по тегам