170 похожих чатов

Подскажите по полю json в mysql. Когда извлекаю данные и

возвращаю return response()->json($data); то в поле json появляются лишние слэши.

Можно как-то извлечь данные как обычный массив? Или надо самому вручную делать json_decode для всех записей?

11 ответов

4 просмотра

дай контекста, из твоего сообщения нифига не понятно

да, почитай доку по функциям json_encode, json_decode.

Влад- Автор вопроса
Ilija Urevich
дай контекста, из твоего сообщения нифига не понят...

В таблице есть поле типа json. Мне нужно в апи отдать данные из этой таблицы. Когда возвращаю данные, то появляются дополнительные слэши вот такие: attributes: "{\"url\": null, \"name\": \"Test1387\"}" Потому что в одном из полей уже строка json. И выходит, что надо самому их декодировать, перед там как опять закодировать в json. А данные в таблице много, и это будет медленно. Я хотел узнать есть ли способ взять с mysql данные как обычный массив, а не json. Надеюсь понятно описал) Подскажите как

Влад
В таблице есть поле типа json. Мне нужно в апи от...

"Надеюсь понятно описал)" нет, вообще ни разу. Вот что тебе нужно сделать: Описать стек в котором происходит действо, дать примеры кода (лучше найти онлайн песочницу и скопипастить туда), написать какой результат в каком месте ты получаешь, сказать что ты хотел бы получить, привести пример, тогда это станет понятным, а сейчас я вообще не понимаю, что у тебя происходит.

Влад
В таблице есть поле типа json. Мне нужно в апи от...

Судя по тому что у тебя экранируются спец символы, что-то фильтрует вывод, но я в душе не чаю что.

Влад- Автор вопроса
Ilija Urevich
"Надеюсь понятно описал)" нет, вообще ни разу. Вот...

Беру данные из бд: $data = DB::table('table')->get(); Вывожу на экран: return response()->json($data); Ожидаю получить : {"attributes":{"name":"Test777","url":null}} Получаю: {"attributes":"{\"url\": null, \"name\": \"Test777\"}"} Поле attributes в mysql имеет тип json. Как извлечь из него данные так, чтобы не появлялись лишние слэши?

Влад
Беру данные из бд: $data = DB::table('table')->get...

хм, на сколько я понял, дело происходит в контексте ларавел, вот что происходит: 1) Получаем JSON из бд 2) Конвертим JSON в JSON 3) Отдаем Задача - избежать второго пункта. гугли как указать в заголовке, что responce - это json type, и просто возвращай значение: return responce($data);

Влад
Беру данные из бд: $data = DB::table('table')->get...

Попробуй вот это return response($data)->header('Content-Type', 'application/json');

Влад- Автор вопроса
Ilija Urevich
хм, на сколько я понял, дело происходит в контекст...

да, ларавел. Дело в том что остальные поля в бд тоже нужно вывести, они же не в json Я могу конечно взять json_decode($data->attributes); , но данных много и не хочу при каждом запросе кодировать каждую запись отдельно Вот и пытаюсь разобраться как работает в mysql поле json, чтобы получить данные как обычный массив. Может посоветуете что можно предпринять, если схема данных заранее неизвестна, а база лежит в mysql? Я думал json решит проблему

Влад
да, ларавел. Дело в том что остальные поля в бд то...

https://laravel.com/docs/8.x/eloquent-mutators#array-and-json-casting

Влад
да, ларавел. Дело в том что остальные поля в бд то...

Ну если уж на столько упороться по оптимизации, то хранить в json то что не изменяется, а остальное все таки придется закодировать, а потом руками соединить конкатенацией в нужно месте, т.е. руками менеджить строку с jsonом, но это очень странное решение

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта