Помогите с stdClass Object

Тема в разделе "Обо всём", создана пользователем zema50, 6 апр 2021.

  1. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    Добрый вечер. Получаю данные по JSON
    $request = json_decode
    Код:
    { "order": {
        "id": 42307970,
        "fake": true,
        "currency": "RUR",
        "paymentType": "PREPAID",
        "paymentMethod": "",
        "subsidyTotal": 0,
        "taxSystem": "",
        "delivery":
        {
            "type": "DELIVERY",
            "price": 450,
            "vat": "NO_VAT",
            "serviceName": "Курьер",
        "address":
        {
            "country": "",
            "postcode": "",
            "city": "",
            "street": "",
            "house": ""
        }
         },
    нужно получить данные из address
    разбираю циклом
    если разбираю так
    foreach($response->order->delivery as $delivery)
    в логе получаю
    Код:
    stdClass Object
    (
        [country] =>
        [postcode] =>
        [city] =>
        [street] =>
        [house] =>
    )
    если прописываю
    $delivery->street
    получаю ошибку
    если прописываю
    $delivery->addres->street
    получаю ошибку
    если прописываю
    foreach($response->order->delivery->addres
    получаю ошибку
    подскажите как вытащить данные
     
  2. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    true в конце забыли поставить.
    PHP:
    json_decode string $json true )
     
  3. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    я знаю про true, но тогда проблема в другом, скрипт взят с другого движка, вот присобачиваю к опенкарту, если ставить true то придется много чего другого переписывать что уже сделано через обьект.
    да делал я такой но что то туплю сейчас, видно пиво не в пользу пошло (
     
  4. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    А точно! Ты к массиву через объект обращаешься. Попробуй как через массив квадратными скобками: foreach($response['order']['delivery']['addres'] ....

    ПС..
    Сам только прилетел и под шафе)))) Возможно я ошибся.
    Лучше код переписать под стиль опенкрат, а то потом забудешь и будешь втыкать: "что я тут писал?!.."
     
  5. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    в общем плюнул, так и сделал.)))