Когда я использую $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, какой синтаксис правильный? Извините, я новичок. Это было бы большим подспорьем. Заранее спасибо.
попробуйте $JSON['test'][0]['predicate']['val']
Прочтите документацию, чтобы узнать, что на самом деле делает var_dump(json_decode(..., true)).
@PhilCross Я пробовал echo $ JSON ["test"] [0] ["predicate"] ["val"]; Он печатает все данные, я имею в виду тот же результат, что и выше






Вы уже пробовали сделать 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'];
Работает как шарм. Спасибо
Думаю, var_dump здесь не нужен ...