Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите распарсить массив json / 3 сообщений из 3, страница 1 из 1
21.09.2019, 19:13
    #39865077
band-rk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить массив json
Добрый вечер, уважаемые знатоки, долго думал в какой раздел написать, решил все же в БД.
Собственно, есть 2 таблицы Вопросы и Ответы, разумеется, связь один к многим.
Есть запрос “test”:
Код: plsql
1.
2.
3.
4.
5.
SELECT 
  tests_question.tests_list_id, 
  tests_question.tests_question_name, 
  ARRAY( SELECT tests_answer.test_answer_name FROM tests_answer WHERE (tests_answer.tests_question_id = tests_question.tests_question_id)) AS "array" 
FROM tests_question


Необходимо его распаристь для дальнейшей обработки в скрипте, Делаю так
Код: php
1.
2.
3.
4.
$query = ("SELECT * FROM test WHERE tests_list_id = ". $_POST['test_id'] ."");
$result = pg_query($query) or die('Ошибка запроса'); 
$array = pg_fetch_all($result);
$my_enc = json_encode($array, JSON_UNESCAPED_UNICODE);


Ну и собственно результат – объект null
...
Рейтинг: 0 / 0
09.10.2019, 10:30
    #39873801
Megabyte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить массив json
Так у вас проблема с парсингом в каком-то скриптовом ЯП, а не в PostgreSQL..?
...
Рейтинг: 0 / 0
12.10.2019, 22:49
    #39875584
Jackvoron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить массив json
Судя по приведенному примеру на бекенде вы используете php
Вы допустили две ошибки
1. Вы возвращаете массив, а не json объект
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT 
	 array_to_json(array[1,1,1]) AS json_string
	,array[1,1,1] AS array_string
;
-- Попробуйте вот так возвращать, если не так то приведите к строке
SELECT 
	 tests_question.tests_list_id
	,tests_question.tests_question_name 
	,array_to_string(ARRAY( 
		SELECT 
			tests_answer.test_answer_name 
		FROM 
			tests_answer 
		WHERE 
			(tests_answer.tests_question_id = tests_question.tests_question_id)
	)) AS "array" 
FROM 
	tests_question



2. Если backend написан на php , и вы хотите преобразовать ваши данные в ассоциативный массив, то использовать надо функцию json_decode , а если просто пробросить на клиент, то у вас у же есть готовый json объект
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите распарсить массив json / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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