Не работал я раньше с json помогите! Мануал я почитал теперь есть ряд мыслей и сомнений поправте меня если я ошибаюсь и ответе на вопросы. Я отправляю запрос приблизительно так Код (PHP): $url = 'https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=ключ&lang=ru-ru&text=вечность'; Затем забираю данные так Код (PHP): $body = file_get_contents($url); делаю массив Код (PHP): $json = json_decode($body); Проверяю выводя на печать Получааеться вот это Код (PHP): object(stdClass)#1 (2) { ["head"]=> object(stdClass)#2 (0) { } ["def"]=> array(1) { [0]=> object(stdClass)#3 (3) { ["text"]=> string(16) "вечность" ["pos"]=> string(30) "существительное" ["tr"]=> array(9) { [0]=> object(stdClass)#4 (3) { ["text"]=> string(27) "целая вечность" ["pos"]=> string(30) "существительное" ["syn"]=> array(1) { [0]=> object(stdClass)#5 (2) { ["text"]=> string(8) "веки" ["pos"]=> string(30) "существительное" } } } [1]=> object(stdClass)#6 (3) { ["text"]=> string(12) "вечный" ["pos"]=> string(28) "прилагательное" ["syn"]=> array(4) { [0]=> object(stdClass)#7 (2) { ["text"]=> string(20) "предвечный" ["pos"]=> string(28) "прилагательное" } [1]=> object(stdClass)#8 (2) { ["text"]=> string(16) "извечный" ["pos"]=> string(28) "прилагательное" } [2]=> object(stdClass)#9 (2) { ["text"]=> string(20) "вековечный" ["pos"]=> string(28) "прилагательное" } [3]=> object(stdClass)#10 (2) { ["text"]=> string(24) "непреходящий" ["pos"]=> string(28) "прилагательное" } } } [2]=> object(stdClass)#11 (3) { ["text"]=> string(14) "навечно" ["pos"]=> string(14) "наречие" ["syn"]=> array(3) { [0]=> object(stdClass)#12 (2) { ["text"]=> string(12) "навеки" ["pos"]=> string(14) "наречие" } [1]=> object(stdClass)#13 (2) { ["text"]=> string(10) "вечно" ["pos"]=> string(14) "наречие" } [2]=> object(stdClass)#14 (2) { ["text"]=> string(20) "бесконечно" ["pos"]=> string(14) "наречие" } } } [3]=> object(stdClass)#15 (2) { ["text"]=> string(26) "бесконечность" ["pos"]=> string(30) "существительное" } [4]=> object(stdClass)#16 (2) { ["text"]=> string(20) "бессмертие" ["pos"]=> string(30) "существительное" } [5]=> object(stdClass)#17 (2) { ["text"]=> string(6) "эон" ["pos"]=> string(30) "существительное" } [6]=> object(stdClass)#18 (2) { ["text"]=> string(6) "эра" ["pos"]=> string(30) "существительное" } [7]=> object(stdClass)#19 (2) { ["text"]=> string(22) "бессмертный" ["pos"]=> string(28) "прилагательное" } [8]=> object(stdClass)#20 (2) { ["text"]=> string(22) "бесконечный" ["pos"]=> string(28) "прилагательное" } } } } } Скрипт выполнялся 0.2004 сек. Вопрос как теперь с этим работать например взять все
я присваиваю значение "строка" переменной урл делаю не массив а объект. массив делается другим образом - мануал подскажет как. ну с объектом новичку не будет удобно работать. лучше с массивом.
Смотря как лучше! Кстати я тут посмотрел а нужно ли вообще использовать json_decode при работе с json.
)))))) Ладно так как обратиться к элементу(там) в объекте json ? Добавлено спустя 3 минуты 34 секунды: Всё спасибо разобрался !!!!
в пхп? чувак, ты пропустил почитать 99% мануала. json это нотация записи объектов в javascript. чтоб работать с ней в пыхе надо декодировать строку. декодировать можно опять же в объект, если ты уже прошел такую стадию дзен как ООП (объектно ориентированное программирование) или в массив, если ты прошел такую мелочь как типы данных в пхп. и как ты можешь догадаться интерфейс работы с объектом и с массивом разный потому что объект и массив разные вещи. тебя изначально до усрачки перепугал вывод объекта декодированного джейсона. ну дык тебе сразу сказали что с ооп ты не знаком раз не знаешь с какой стороны к объекту подходить. и предложили декодировать в массив. это ты как бы уже обязан был изучить. и вместо того чтоб пойти поглянуть в мануале как декодировать не в объект а в массив ты задумался на кой хер вообще декодировать джейсон. совсем не в ту сторону. совсем. впрочем раз ты пропустил 99% обучения то тебе это стало быть привычно. май вэй так сказать. ну то есть йор вэй, да. ну ты уже посмотришь в нужную сторону?))))
А не не разобрался ((((( массив я создал а вот как теперь обратиться не получается Код (PHP): $outmsv = json_decode($body, true);// Создал так //ПЫтаюсь так обратиться к элементу echo $outmsv['text']; Не получаеться
В документации описаны почти все варианты как работать с массивом php.net/manual/ru/language.types.array.php Смотри более внимательно: Пример #6 Доступ к элементам массива
чего тут разбираться, ну дока по функции же три предложения ж... Добавлено спустя 46 секунд: var_dump()
вардамп результата декодирования для начала, блин. тебя еще и отладки учить? бросай ты это дело. не программист ты по природе)))
Да, массив многомерный. Прочитай ещё раз моё первое сообщение, чтобы понять как обращаться к многомерным массивам. Чтобы понять структуру массива, можно вывести его на экран: Код (PHP): echo '<pre>'; var_dump($outmsv);
это он не тебе вообще писал. ты такой внимательный)))) хотя я понимаю, у тебя сейчас лютейшая каша в голове потому что ты не знаешь ни массивов ни объектов да еще и оказалось что жейсон это джавастрипт нотация. "при чем тут вообще пхп?" возможно крутится в твоей голове)))) короче говоря. ты ознакомься с основами. грубо говоря есть карта по которой "поверни туда пройди прямо поверни сюда" можно добраться из точки А в точку Б. но тебя высадило в точку Х и тебе эта карта - только разве что подтереться ибо иначе ты не можешь её применять. вот ты сейчас в таком положении. ты нашел как декодируют джейсон, нашел как скачать урл. всё ок. но ты как оказалось не умеешь читать мануал. и не умеешь смотреть состояние своего кода. пока ты басису не научишься - у тебя будут вот такие веселые треды возникать на форумах.