JQuery ParseJSON возвращает двойные данные - PullRequest
0 голосов
/ 04 июля 2011

У меня есть файл PHP, который возвращает это:

$data = pg_fetch_array($result);
echo json_encode($data);

И в коде .js я делаю это:

var jsonObj = $.parseJSON(text);
console.dir(jsonObj);

И моя проблема в том, что я получаю эти "двойные" данные:

{ "0": "3", "идентификатор": "3", "1": "Тест", "тип": "Тест", "2": "Google", "название": "Google "," 3 ":" http://www.google.com","url":"http://www.google.com"}

Любые идеи о том, как получить его без этих индексов (0,1,2 ...)?

Ответы [ 3 ]

2 голосов
/ 04 июля 2011

Проблема не в методе parseJSON, а в pg_fetch_array.И это ожидаемое поведение.

Документация PHP гласит, что pg_fetch_array по умолчанию "проиндексировано численно (начиная с 0) или ассоциативно (проиндексировано по имени поля)", поэтому вы можете получить доступ к значениям либоиндекс или по имени.

Чтобы изменить это поведение, используйте

$data = pg_fetch_array($result, 0, PGSQL_ASSOC); //Keys are names only
$data = pg_fetch_array($result, 0, PGSQL_NUM); //Keys are indexes only
0 голосов
/ 04 июля 2011

Try pg_fetch_array ($ result, NULL, PGSQL_ASSOC);

0 голосов
/ 04 июля 2011

Я думаю, вам не нужно анализировать это с помощью json, если вы используете метод jquery ajax, просто упомяните dataTye: json, тогда вы можете напрямую получить доступ к этому объекту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...