Как обработать массив, возвращенный из pgsql? - PullRequest
1 голос
/ 02 мая 2011

в php я получаю массив из pgsql:

$res = $db
    ->query( "SELECT myarray FROM arrays WHERE array_name=smth" )
    ->fetchRow();
exit (json_encode($res));

Введите pgsql целое число []

Но в JS я получаю JSON с одной строкой "{1,2,3, ...,}" Как получить в массиве эти данные?

Ответы [ 4 ]

2 голосов
/ 02 мая 2011

PDO не выполняет какой-либо перевод типов, все возвращается в виде строк. Поэтому вам придется анализировать строку с помощью explode () и самостоятельно создавать массив PHP.

1 голос
/ 02 мая 2011

Если вы хотите декодировать JSON в массив в JavaScript, вы можете просто использовать функцию eval ().Но сначала вы должны убедиться, что это строка JSON.Подробнее: http://json.org/js.html

1 голос
/ 02 мая 2011

json_encode Возвращает JSON-кодированную строку в случае успеха.

Присвойте значения, возвращаемые fetchrow (), переменной и попытайтесь распечатать ее перед json_encode.это будет массив !!!

0 голосов
/ 26 июня 2011

Вы можете использовать что-то вроде этого:

$php_array = json_decode( str_replace( 
    array( '[',      ']',      '{', '}' ), 
    array( '\u005B', '\u005D', '[', ']' ), 
    $your_pgsql_array 
) );
...