powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с новым типом данных JSON
3 сообщений из 28, страница 2 из 2
Проблемы с новым типом данных JSON
    #38675417
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContraПомогает только костыли в виде:
Код: php
1.
2.
3.
4.
5.
6.
$sth = $this->db->query("SELECT d FROM mytable;");
        $arr = $sth->fetchAll(PDO::FETCH_ASSOC);
        foreach($arr as $k => $v){
            $arr[$k]["d"] = json_decode($v["d"]);
        }
        echo json_encode($arr);


Т.е. надо заранее знать, какое поле у тебя json, какое -нет. Печаль

полная ерунда. а если бы само распаковало в масив, можно было бы работать с масивом и незнать, где у вас джейсон? всмысле покажите запрос которым вы сделали запись в базу, понятия не имея где джейсон а где нет?
...
Рейтинг: 0 / 0
Проблемы с новым типом данных JSON
    #38681825
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,
Для такого результат как хочет автор, можно реализовать свой парсер на PLPG.
Создал себе PLPg функцию, которая в качестве входящего параметра получает запрос, и возвращает текст.
При выполнении запроса в теле функции, можно проверить тип данных. Если он JSON. то не сложными манипуляциями, в самом теле можно сформировать нужный JSON ответ с использованием row_to_json. Также можно привести hstore к JSON.
Полученный ответ пропускаем через json_decode. И вуаля, на выходе имеем обьект/массив с учетом значений столбцов JSON. И самое главное с сохранением типов данных. Т.е если у меня где то столбец bool, то я в php тоже получу bool после json_decode, а не дескриптор в виде 'f' или 't'.
Конечно приходится использовать EXECUTE. Но при формировании логики на процедурах, без него все равно не обойтись. Тут уже нужно исходит из ситуации, стоит ли игра свеч.
Но зато, задача автора решается 100%. И не важно используете ли вы PDO или что то другое. Потому как с БД вы получает varchar который уже содержит сформированный JSON
В PHP это может выглядеть так.:
Код: plsql
1.
2.
3.
4.
5.
6.
 public function getSensorFields ()
    {
       $query= 'SElECT * FROM table';
        $this->dbase->query('SELECT * FROM to_json('.$query.')');
        return json_decode($this->dbase->getArrayValue('to_json'),true);
    }
...
Рейтинг: 0 / 0
Проблемы с новым типом данных JSON
    #38683401
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453и вовсе не логично , если поле содержит упакованные данные, чтобы оно само распаковывалось. а главное зачем?
<sarcasm>На самом деле, где тут логика?</sarcasm>
...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с новым типом данных JSON
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]