За последние 24 часа нас посетили 17759 программистов и 1682 робота. Сейчас ищут 924 программиста ...

Парсинг Json

Тема в разделе "PHP для новичков", создана пользователем yuri-it, 6 апр 2017.

  1. yuri-it

    yuri-it Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Просьба помочь с такой проблемой. Функция возвращает json такого вида:
    PHP:
    1. {
    2.   "host": "https://ya.ru",
    3.   "port": 443,
    4.   "endpoints": [
    5.     {
    6.       "ipAddress": "138.201.17.2",
    7.       "serverName": "ya.ru",
    8.       "statusMessage": "Ready",
    9.       "grade": "C",
    10.       "gradeTrustIgnored": "C",
    11.       "delegation": 1
    12.     }
    13.   ]
    14. }
    никак не получается присвоить PHP переменной нужное значение из массива. К примеру, подскажите как присвоить переменной значение serverName?
     
    #1 yuri-it, 6 апр 2017
    Последнее редактирование модератором: 6 апр 2017
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    PHP:
    1. <?php
    2. // Если работать, как с объектом
    3. $obj = json_decode($json);
    4. echo $obj->endpoints[0]->serverName;
    5. // Или массивом
    6. $arr = json_decode($json, 1);
    7. echo $arr['endpoints'][0]['serverName'];
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  4. yuri-it

    yuri-it Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Спасибо, но не помогает. Вызывается json_decode($apiResponse), но при выводе
    echo $obj->endpoints[0]->serverName; просто пусто.
     
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    PHP:
    1. $arr = json_decode($json, 1);
    2. echo $arr['endpoints'][0]['serverName'];
    Ну вот же!
     
  6. yuri-it

    yuri-it Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Пробовал и так и так, в одном случае пусто, в другом выводится только символ {
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
  8. yuri-it

    yuri-it Активный пользователь

    С нами с:
    15 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Спасибо, буду искать у себя ошибку.
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    чисто для интереса: что быстрее/лучше/коротко_в_коде - json перевод в объект или в массив ?
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    так замеряй )
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    открываю свой нотепад++ с кодом подсвеченным и начинает тошнить от пхп, закрываю... :(
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Поставь себе нормальную IDE уже.
     
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    Тут не в инструментах дело
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Выдохся?(
     
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    Возможно, жажда что-нибудь накодить, но когда беруть, блевать хочется Лень **аная :D