Как правильно парсить JSON в PHP

Я хочу анализировать значения из Json API, но не могу заставить его работать

API возвращает этот JSON:

[
  {
    "assets": [
      {
        "id": 6,
        "size": 1429504,
        "download_count": 1,
        "browser_download_url": "https://dl.domain.tld/files/cdbc6e19-cd86-4ed6-8897-37ec5aaee578"
      }
    ]
  }
]

Я попытался получить значение идентификатора следующим образом:

$json_obj = json_decode($resp);
print $json_obj->assets[0]->id;

но я не получаю результата, тогда как должно быть 6. Что я здесь делаю неправильно?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
0
46
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

Помните, что внешняя часть JSON — это массив, как следует из открытия [. Итак, вам нужно сначала получить доступ к первому (и единственному) его элементу:

$json_obj[0]->assets[0]->id; //<-- note the first [0]

Я думаю, что правильный ответ

$json_obj = json_decode($resp);
print $json_obj[0]->assets[0]->id;

Объект json будет преобразован в массив php, так как у вас есть массив с объектом внутри, в вашем случае это будет многомерный массив с объектами внутри.

Попробуйте это, это сработало для меня ..

$json ='[
  {
    "assets": [
      {
        "id": 6,
        "size": 1429504,
        "download_count": 1,
        "browser_download_url": "https://dl.domain.tld/files/cdbc6e19-cd86-4ed6-8897-37ec5aaee578"
      }
    ]
  }
]';



$json_obj = json_decode($json);

var_dump($json_obj[0]->assets[0]->id)
?>

декодировать JSON в массив и получить идентификатор с помощью соответствующих ключей массива

$jToArray = json_decode($resp, TRUE);
echo $jToArray[0]['assets'][0]['id'];//You will get the correct id

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