|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.03.2020, 01:36 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Ассоциативные массивы и JSON
Здравствуйте.
Есть вот такая конструкция - ссылка на исходник. Есть аналогичная, развёрнутая, но более громоздкая конструкция - ссылка на исходник. При работе в serialize/unserialize - всё нормально. Но мне нужно реализовать курсирование этих данных между сервером и клиентом, то есть JSON. При выполнении json_decode я получаю не массив, как это задумано, а объект, что ставит крест на возможности работать с ключами. Это нужно делать как в JS, так и в PHP. На клиенте эти данные необходимо иногда менять, на сервере - постоянно использовать. Можно конечно же get_object_vars, но как обращаться к этим свойствам (из переменной) - я не знаю. Так же я попытался как обычно это бывает - собрать нужный JSON прямо в строку, что бы из json_decode я получил задуманный ассоциативный массив. Но я получаю либо объект, либо индексный массив (обращаться по номерам), либо null. Помню когда-то работал только с индексными массивами, и сейчас лишний раз убеждаюсь, что от своего убеждения далеко не ушёл. Ассоциативные бывают удобными, особенно для быстрого поиска данных. Но если речь заходит о таблицах - едва-ли дело доходит до ключ-значение. Что можете подсказать ?
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 10.03.2020 в 03:19. |
10.03.2020, 08:30 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
1. Конкретно что вы хотите? Туда-сюда указанные вами структуры гонять?
2. Для того чтоб передать json - так сделайте его командой json_encode 3. соответственно в js придет json с исходной структурой |
10.03.2020, 10:32 | #3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Что бы на выходе из json_decode была та же структура, что и на входе в json_encode.
Что бы я мог обращаться в переменную вот так: Код:
Но после того что я делаю выше (по примерам формирование массива и json_encode/json_decode - мне нужно обращаться не к элементам массива, а к объектам Код:
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 10.03.2020 в 10:35. |
10.03.2020, 12:45 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
сплошная муть...
Давай с начала формируешь в php и передаешь в JS - там все нормально? Код Пхп и код js покажи потом в обратную сторону при чем тут file_get_contents - я вообще не догоняю |
10.03.2020, 15:20 | #5 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Кода JS ещё нет, я с PHP не разобрался.
Да и с JS не должно быть проблем, там можно обращаться как в ассоциативный массив, и как в поле объекта. Есть три файла PHP, в каждом по 50 строк кода. Вы будите разбираться что к чему ? Я показал код PHP - ссылка на исходник. Это структура данных, которую мне нужно гонять в json_encode и json_decode Когда я эту структуру данных (массив) отдаю в json_encode - получаю строку, с этим всё номрально. А когда полученную строку отдаю в json_decode - я получаю совершенно другую структуру (объект stdClass), которая отличается от исходной. Мне нужно, что бы на выходе из json_decode я получал ту структуру, которую отдаю в json_encode
Подпись ? Не, не слышал ...
|
10.03.2020, 17:23 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
"ничего не готово, все потом будет но сейчас я гоняю туда сюда..." нехрена?
Прочтите документацию по используемым функциям https://php.ru/manual/function.json-decode.html Сделайте Код:
|
10.03.2020, 19:13 | #7 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Читал. Ещё я гуглил. Сюда бы не пришёл, будь проблема решена.
И да, в вашей ссылке даже нет примеров работы с ассоциативными (ключ-значение) массивами PHP. Цитата:
Я ему массив, а он мне - объект. В этом и есть проблема. Сейчас даже готовить толком нечего, ибо нет рабочей структуры данных, которая отправлялась бы в JS, и работала как требуется в PHP. Суть задумки: 1) есть массив ссылок, которые нужно вызывать из PHP (file_get_contents), раз в сутки; 2) эти ссылки необходимо иногда менять, допустим раз в месяц, и менять их должен пользователь; 3) создаётся ассоциативный массив двойной вложенности Код:
5) в PHP нужно из массива взять $links_struct[$_GET['param']]['link'], и вызвать эту ссылку. Проблема в том, что я не могу из JSON получить задуманную структуру данных.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 10.03.2020 в 19:31. |
|
10.03.2020, 19:51 | #8 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
может потому что структура ваша кривая?
может я чего-то недопонимаю? зачем в массиве! какие то ключи искусственные типа param_0, param_1 итд - чем индексы обычные не угодили? зачем вообще массивы? БД что - под запретом? сделали б структуру id alias link доставай как и сколько хочешь, записывай.... кароче все удобно Код:
|
10.03.2020, 21:55 | #9 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Цитата:
Помнится мне именно на этом форуме писали, что текстовые ключи "удобнее и нагляднее". Так, числовыми индексами по порядку можно закодить что угодно, так я умею. Аргументы в студию. Структура исправно работает в PHP.
Подпись ? Не, не слышал ...
|
|
10.03.2020, 22:43 | #10 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
Какие тут аргументы...
Каков смысл ассоциативности массива, если ключи не имеют смысла? Никакого Ну хотите использовать используйте... Микроскопом тоже можно гвозди забивать и это будет работать.. но нужно ли Вы свою проблему с json то решили? |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с JSON (System.JSON) | nibufep | Общие вопросы Delphi | 3 | 19.04.2016 18:21 |
Ассоциативные индексы (Паскаль) | Паскалька^^ | Помощь студентам | 1 | 19.10.2010 21:13 |
Ассоциативные массивы | ROD | Общие вопросы C/C++ | 4 | 12.10.2010 20:54 |
Ассоциативные массивы в С# | Jeid | Общие вопросы .NET | 2 | 12.09.2010 11:59 |
Ассоциативные списки в MULisp | Rio309 | Помощь студентам | 0 | 20.04.2009 15:14 |