|
|
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Создал в таблице колонку d с типом JSON, вставил ["aa", "bbb", "cccc"] Делаю select, далее на php echo json_encode(array( 'data' => fetchAll(PDO::FETCH_ASSOC) )); все гуд. Вот только в javascript $.get(url, function(d){console.log(data);}, 'json'); приходит {"aaData":[{"d":"[\"aa\", \"bbb\", \"cccc\"]"}]} или что тоже самое "["aa", "bbb", "cccc"]" ну и соответственно, js считает это одним текстом, а не объектом из трех текстов А вот если бы пришло ["aa", "bbb", "cccc"] -то было бы все замечательно Вопрос: что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 16:52:41 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContra, pg при чем тут? для чего json_encode? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 17:50:40 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
fetchAll вернул строку, Вы её сунули в массив и преобразовали в JSON, и получили то что получили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 18:13:31 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
ГостьикfetchAll вернул строку, Вы её сунули в массив и преобразовали в JSON, и получили то что получили fetchAll вернул двухмерный массив(строки, поля). Я ожидаю ( и это разумно), что фечалл распетрушит и json объект и вернет вместо Код: php 1. 2. 3. 4. 5. более многомерный массив: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Разве это не то, чего стоит ожидать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 18:32:05 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContra, покажите результат запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 18:38:10 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
SmeL_md, А теперь понял Ваш набор букв. Если убрать все ваши телодвижения и отдать результат сразу js то и проблем с новым типом не будет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 18:41:25 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContraЯ ожидаю ( и это разумно), что[b] фечалл распетрушит и json объектДля этого нужно чтобы PDO понимал тип json, а он вряд ли это умеет. Попробуйте написать пожелание авторам PHP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 22:47:09 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Гость_0PCContraЯ ожидаю ( и это разумно), что[b] фечалл распетрушит и json объектДля этого нужно чтобы PDO понимал тип json, а он вряд ли это умеет. Попробуйте написать пожелание авторам PHPАга и про xml, hstore, и так далее чтоб вообще было круто, массивы полагаю тоже туда. После этого появится вопросы от любителей select * from обновил php и стал тормозить сервер :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 23:01:18 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
SmeL_mdSmeL_md, А теперь понял Ваш набор букв. Если убрать все ваши телодвижения и отдать результат сразу js то и проблем с новым типом не будет :) Пробовал? Если в js отдавать массив результата, то через джсон_енкоде. А вот как не кодировать поле - вот вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 23:35:35 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContra, Какая версия Postgres ? если 9.2 или ниже, то тип JSON для хранения - бесполезный. Разве что только, как сериализация хранения. Что бы быть уверенным что вы записали именно JSON а набор буков. Также ваш пример вполне логичен. Почему вы решили, что должны с "[\"aa\",\ "bbb\", \"cccc\"]" получить ассоциативный массив, не понятно. Ведь JSON предусматривает только как тип хранения, для дальнейшей работы с индексами по нему, поиском и тд тп. Но это плюшки с версии слона 9.3. Вы с Pg получаете строку, а не обьект. По этому, для начала избавтесь от слешей (stripslashes)и пропустите через json_encode и будет вам счастье. а PHP тут не виноват, он все делает правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 00:18:42 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContraSmeL_mdSmeL_md, А теперь понял Ваш набор букв. Если убрать все ваши телодвижения и отдать результат сразу js то и проблем с новым типом не будет :) Пробовал? Если в js отдавать массив результата, то через джсон_енкоде. А вот как не кодировать поле - вот вопрос Только что, выполнил ajax запрос и без преобразований отдал в js и вывел 1 элемент массива т.е. aa ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:57:00 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
SmeL_md, Проверил с Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:04:12 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Electric200PCContra, Какая версия Postgres ? если 9.2 или ниже, то тип JSON для хранения - бесполезный. Разве что только, как сериализация хранения. Что бы быть уверенным что вы записали именно JSON а набор буков. Также ваш пример вполне логичен. Почему вы решили, что должны с "[\"aa\",\ "bbb\", \"cccc\"]" получить ассоциативный массив, не понятно. Ведь JSON предусматривает только как тип хранения, для дальнейшей работы с индексами по нему, поиском и тд тп. Но это плюшки с версии слона 9.3. Вы с Pg получаете строку, а не обьект. По этому, для начала избавтесь от слешей (stripslashes)и пропустите через json_encode и будет вам счастье. а PHP тут не виноват, он все делает правильно. Версия 9.3.4 Я хочу чтобы с Код: php 1. 2. 3. было: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Да, думаю дело в PDO. Он работает только с двумерным массивом, а поля рассматривает как строки. Тут либо феч алл рассматривать с каким-нибудь параметрами (типа "дополнительно разобрать все поля как массив"), либо другой тип хранения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:10:01 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Попробовал тип array, тоже не то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:24:57 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContra, Вы хотите модифицировать json объект для js? если да то нужен будет json_decode и потом json_encode, ну а если нет то и не трогайте его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:26:42 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Помогает только костыли в виде: Код: php 1. 2. 3. 4. 5. 6. Т.е. надо заранее знать, какое поле у тебя json, какое -нет. Печаль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:41:06 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Вот результат, какой я и ожидал: Но несмотря на это, хотелось бы обходиться без ручного декодирования элементов в массиве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:43:50 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContraНо несмотря на это, хотелось бы обходиться без ручного декодирования элементов в массивеТак не декодируйте заворачивайте Ваш фечОлл в json, Получив все это в js рассматривайте каждую строку как строку json, а не готовый json объект, но вы видимо не читаете мои ответы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:54:56 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
Вот еще второе решение, более изящное: Код: php 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:59:23 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
[quot SmeL_md]PCContra, Получив все это в js рассматривайте каждую строку как строку json, а не готовый json объект ну а далее-то в js мне надо работать с объектом: разложить все значения по <div>ам и так далее... Что мне делать с этим: это же строка, а не объект. Как в js взять из нее текст, допустим, с индексом 2 (три буквы "б") ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 12:40:21 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 12:43:10 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
[quot PCContra]SmeL_mdпропущено... ну а далее-то в js мне надо работать с объектом: разложить все значения по <div>ам и так далее... Что мне делать с этим: это же строка, а не объект. Как в js взять из нее текст, допустим, с индексом 2 (три буквы "б") ?Но вы же как то получили json объект :) а теперь тоже самое можно сделать для значения json объекта и Вы получите то что вам нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 12:47:35 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
SmeL_mdНо вы же как то получили json объект :) а теперь тоже самое можно сделать для значения json объекта и Вы получите то что вам нужно. 16194331 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 12:58:29 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContraSmeL_mdНо вы же как то получили json объект :) а теперь тоже самое можно сделать для значения json объекта и Вы получите то что вам нужно. 16194331 И что Вы этим хотите сказать? что идея преобразовать строку json в объект, который потом просто поместить в архив и в конце все это опять завернуть json, вас не настораживает :) по поводу того как из строки получить json for ... jQuery.parseJSON( json_string ) Видимо пора закругляться, топик вообще ни как к postgresql не относиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 13:10:34 |
|
||
|
Проблемы с новым типом данных JSON
|
|||
|---|---|---|---|
|
#18+
PCContrafetchAll вернул двухмерный массив(строки, поля). Я ожидаю ( и это разумно), что фечалл распетрушит и json объект и вернет вместо нет, это не разумно! выборка из базы, это масив строк, где каждая строка - масив елементов(полей/столбцов) и вовсе не логично , если поле содержит упакованные данные, чтобы оно само распаковывалось. а главное зачем? шифрованые данные тоже должны сами дешифроваться??? или их всётаки стоит дешифровать перед необходимостью получить самому??? есть тип геометрические фигуры - эти столбики что должы делать автоматически при ветч-асок??? вот многоугольник - во что должен сам превращаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 13:50:15 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38675192&tid=1998610]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
489ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 847ms |

| 0 / 0 |
