Прежде всего, мне жаль, если это дублированный вопрос, но я не мог найти ничего, что могло бы работать и решить мою проблему.php получить конкретный тег элемента массива json
Я беру данные из БД (Postgres) и разбираю их в массив Json. данные выглядит следующим образом
[{"login":"[email protected]","first_name":"Admin","last_name":"Name","title":null},{"login":"[email protected]","first_name":"More","last_name":"Data","title":"X"}]
Мой код для извлечения этих данных что-то вроде этого:
foreach ($jsonData as $us) {
$user = new App\User;
$user->name = $us->login; //same thing for the rest of data
Ошибка я получаю говорит, что я не могу назвать данные из JSON с ->
но var_dump'ing $ jsonData утверждает, что это массив со всеми правильными элементами в нем.
PS: забыл добавить, но я пытался var_dump($jsonData['login'][0]);
получить только первый вход (должно быть «корень @ локальный»), но он говорит: «Не определен индекс: войти»
У вас есть указатель назад, когда вы делали 'var_dump ($ jsonData ['login'] [0]);'. Если вы сделали 'var_dump ($ jsonData [0] ['login']), он должен работать –
Может быть, не имеет значения, но я думаю, что в вашем цикле foreach отсутствует закрывающий'} '? – lozadaOmr
Кроме того, что '->' не работает. PHP имеет метод 'json_decode()', который позволяет обрабатывать строку JSON в массиве или объекте (на основе логического параметра в функции). Я предполагаю, что ваш привод базы данных автоматически анализирует данные в массиве после запроса на него. Я предполагаю, что вы видели несколько примеров, когда данные JSON являются объектом, что вызывает некоторую путаницу для вас. Может быть, неправильно, просто хотел бросить это там. –