Как получить данные из JSON в PHP

Я хочу распечатать данные один за другим, используя массив JSON.

[
{
"meta_device_id":"NEA8000000345",
"name":"Jaffna",
"description":"aq",
"latitude":9.779333,
"longitude":80.04059,
"pm10":31.0,
"pm25":55.0,
"pm100":74.0,
"co2":4996.0,
"temperature":27.94,
"timestamp":1647383654251
}, 

{
"meta_device_id":"NEA8000011",
"name":"Galle",
"description":"MET Department, Galle",
"latitude":6.0297956,
"longitude":80.21212,
"pm10":28.0,
"pm25":43.0,
"pm100":52.0,
"co2":2264.81,
"temperature":34.59,
"timestamp":1647398582681
}
]

Это мой массив json. Я хочу взять meta_device_id для переменной. Как мне это сделать ?

Отвечает ли это на ваш вопрос? Как извлечь и получить доступ к данным из JSON с помощью PHP?

Andrea Olivato 18.03.2022 06:30

@AndreaOlivato Спасибо за повтор. Я также проверяю этот пример, но всегда показываю пустым. '$json = file_get_contents('123.231.44.147/nbro-invoker/api/sensor/fl‌​at-info'); $вкусняшка = json_decode($json); эхо $вкусняшка->meta_device_id; Это код, который я использую.

Buddika 18.03.2022 06:42

Это связано с тем, что API возвращает массив объектов json, поэтому попытка доступа к свойству meta_device_id не сработает. Вам нужно будет указать, к какому устройству вы хотите получить доступ, либо с помощью индекса, например. $yummy[0]->meta_device_id. Или вы можете использовать array_column для получения массива идентификаторов устройств для всех устройств, возвращенных из вызова API, как в этой демонстрации 3v4l.org/ovAZa. Или сделайте foreach($yummy as $yum), чтобы получить доступ к каждому объекту JSON в массиве.

Kim Hallberg 18.03.2022 06:59
Стоит ли изучать 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
3
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

вам нужно decode ваш результат json, а затем либо перебрать ваши данные, чтобы получить meta_device_id, либо вы можете получить значение с помощью array index.

$string = '[
{
"meta_device_id":"NEA8000000345",
"name":"Jaffna",
"description":"aq",
"latitude":9.779333,
"longitude":80.04059,
"pm10":31.0,
"pm25":55.0,
"pm100":74.0,
"co2":4996.0,
"temperature":27.94,
"timestamp":1647383654251
}, 

{
"meta_device_id":"NEA8000011",
"name":"Galle",
"description":"MET Department, Galle",
"latitude":6.0297956,
"longitude":80.21212,
"pm10":28.0,
"pm25":43.0,
"pm100":52.0,
"co2":2264.81,
"temperature":34.59,
"timestamp":1647398582681
}
]';

 $yummy = json_decode($string);

Теперь вы можете перебирать свои данные и сохранять значения в массиве.

 $myarr = array();
 $i=0;
 foreach($yummy as $yum)
 {
  $myarr[$i] = $yum->meta_device_id;
  $i++;
 }
 var_dump($myarr); // array(2) { [0]=> string(13) "NEA8000000345" [1]=> string(10) "NEA8000011" } 

ИЛИ вы можете получить значения по индексу.

var_dump($yummy[0]->meta_device_id); // NEA8000000345
var_dump($yummy[0]->meta_device_id); // NEA8000011

Спасибо за ответ . Да, этот код работает, еще раз спасибо. У меня есть еще один вопрос. для $string, как можно использовать URL-адрес API. Я проверил, используя приведенный ниже код, но он не работает. '$string1 = '123.231.44.147/nbro-invoker/api/датчик/плоская информация'; $string = file_get_contents($string1); $вкусняшка = json_decode($string); $myarr = массив(); $i=0; foreach($yummy as $yum) { $myarr[$i] = $yum->meta_device_id; $я++; } var_dump($myarr); // массив(2) { [0]=> строка(13) "NEA8000000345" [1]=> строка(10) "NEA8000011" } '

Buddika 18.03.2022 08:34

вы можете свернуть свой API и передать результат в $string.

Aqib Javed 18.03.2022 08:36

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