Задать вопрос
seregazolotaryow64
@seregazolotaryow64
IT Специалист и самоучка

Как получить JSON-данные внутри дочерних массивов?

Доброго времени суток!

Сейчас сталкиваюсь с тем, что мне нужно получить JSON-ключи и данные, если данные заключены в JSON-строках внутри массивов. Ещё и на основе вложенных ключей сформировать отдельные столбцы.

Сами исходные данные из столбца meta реализованной мной таблицы serviceList, который имеет тип данных JSON:
{"seoData": {"term": "<h2>Test term</h2>\n", "categoryId": "1", "faqService": [{"answer": "Test answer", "question": "Test question"}], "description": "<h2>Test description</h2>\n"}, "accessRole": "private"}


И реализовываю то, что я описывал выше:
SELECT JSON_UNQUOTE(JSON_EXTRACT(meta, "$.seoData.faqService.question")) as "question",  JSON_UNQUOTE(JSON_EXTRACT(meta, "$.seoData.faqService.answer")) as "answer" FROM serviceList WHERE id=1


И результат запроса: Только одни NULL.

Как решить данную проблему, чтобы запрашиваемые мной данные проверялись, распределялись и выводили более точно? Заранее вам спасибо и в комментариях к этому вопросу будут бонусный запрос и скриншот с исходной сутью вопроса!
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Либо $.seoData.faqService[0].answer, тогда получите данные только из указанного (нулевого) элемента массива, либо $.seoData.faqService[*].answer, тогда получите массив из полей answer всех элементов в faqService.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
faqService - массив а вы к нему обращаетесь как к обьекту. Надо $.seoData.faqService[0].question
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы