Как читать декодированный массив php json

Когда я использую $JSON = var_dump(json_decode($MyJSON, true));, я получаю следующую строку Если я повторю $ JSON: -

array(1) {
["test"]=> array(2) {
    [0]=> array(3) {
        ["subject"]=> array(2) {
            ["type"]=> string(10) "blank node" ["val"]=> string(4) "_:b0" 
        } 
        ["predicate"]=> array(2) {
            ["type"]=> string(3) "IRI" ["val"]=> string(47) "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" 
        }
        ["object"]=> array(2) {
            ["type"]=> string(3) "IRI" ["val"]=> string(25) "http://schema.org/WebPage" 
        }
    }
    [1]=> array(3) {
        ["subject"]=> array(2) {
            ["type"]=> string(10) "blank node" ["val"]=> string(4) "_:b0" 
        }
        ["predicate"]=> array(2) {
            ["type"]=> string(3) "IRI" ["val"]=> string(28) "http://schema.org/breadcrumb" 
        }
        ["object"]=> array(2) {
            ["type"]=> string(10) "blank node" ["val"]=> string(4) "_:b1" 
        }
    } 
 }
}

что, если я хочу echo $JSON->test[0]->predicate->val, какой синтаксис правильный? Извините, я новичок. Это было бы большим подспорьем. Заранее спасибо.

Думаю, var_dump здесь не нужен ...

Shez Ratnani 30.05.2018 00:53

попробуйте $JSON['test'][0]['predicate']['val']

Phil Cross 30.05.2018 00:55

Прочтите документацию, чтобы узнать, что на самом деле делает var_dump(json_decode(..., true)).

ccKep 30.05.2018 00:55

@PhilCross Я пробовал echo $ JSON ["test"] [0] ["predicate"] ["val"]; Он печатает все данные, я имею в виду тот же результат, что и выше

Shez Ratnani 30.05.2018 00:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы уже пробовали сделать json_decode($MyJson) без true в качестве второго параметра? Это вернет объект STD, который должен напоминать способ доступа к объекту json. Дополнительную информацию см. В документации PHP (второй параметр $ assoc = true означает, что он будет преобразован в ассоциативный массив): json_decode

Ответ принят как подходящий

Удалить var_dump

$JSON = var_dump(json_decode($MyJSON, true));

Итак, $ JSON становится

$JSON = json_decode($MyJSON, true);

После этого вы сможете получить доступ к необходимой переменной через

$JSON['test'][0]['predicate']['val'];

Работает как шарм. Спасибо

Shez Ratnani 30.05.2018 01:05

Другие вопросы по теме